• Pick the highest-tier bridge available on the current host.

    Returns Promise<Bridge>

    Selection order:

    1. If BridgeFeatures.gc is available, attempt to load the wasmgc-classic bridge; on instantiation failure fall through.
    2. Otherwise return the universal wasmgc-classic baseline.

    Tier table per #680's browser-compat audit, with every row landing on the one bridge this package ships:

    Tier Hosts Bridge
    A Chromium 131+, Firefox 130+, Node 22.6+ wasmgc-classic
    B Safari 18.2+ (GC yes, builtins uncertain) wasmgc-classic
    C Cloudflare Workers, Vercel Edge, Deno Deploy wasmgc-classic
    D Node 18 LTS, anything pre-GC wasmgc-classic

    Tier A does NOT select wasmgc-builtins (#408). It used to, in both the order above and the table, and that made this the last text in the tree pointing a reader at the dead path. wasmgc-builtins is RETIRED and the retirement is measured rather than provisional: causl/causl-core-rs#210 measured its wasm:js-string imports as i32-typed where the W3C builtins are externref-typed, so WebAssembly.compile(bytes, { builtins: ['js-string'] }) refuses the artefact on EVERY host and no rebuild changes it. causl/causl-core-rs#355 deleted the vendored tree and the build row; the loader's assertBridgeIsShipped now fails the id closed at selection time with that measurement and the alternative attached. causl/causl-core-rs#358 is the retype that would bring the tier back, and until it lands there is one artefact, so there is nothing for a probe to choose between.

    STUB BEHAVIOUR (current PR). Until #692 lands the real bridge, this function always returns a makeDefaultBridgePlaceholder regardless of host capabilities. The probes still run (they exercise the harness on the real hosts that the CI matrix covers), but their results are recorded only on the returned bridge's BridgeFeatures for telemetry; the bridge identity stays wasmgc-classic. When the real bridge lands, the loadGcBridge() / loadGcClassicBridge() hooks below switch to dynamic-import-based loaders and the function's return type does not change.

    Feature-detection failures never crash: the harness always returns some bridge — the universal fallback if every probe rejects.