radioState

open val radioState: StateFlow<NearbyRadioState?>

The device's live radio state, or null while unknown. This is what makes a seam's us.tractat.kuilt.core.Seam.capability reactive (#1543): as Bluetooth is toggled, Wi-Fi returns, or the Play services runtime hosting the fabric goes away, a fresh NearbyRadioState appears here and the seam folds its toAvailability into the live capability — and its radioRoles into the live ROLES.

Modelled as latest-value StateFlow state (not a lossy event stream) — the current radio state is a level, and a late subscriber must see the latest value, never miss it. Defaults to a never-updated null ("unknown") so a binding without a real observer inherits "unknown" and the seam reports us.tractat.kuilt.core.FabricAvailability.Unknown rather than guessing; NearbyLoom's static report supplies only the ROLES, never a live verdict (#1712). Wiring an observer here is therefore what takes a binding's seam OFF that floor; nothing else can. GmsNearbyApi (androidMain) drives it from the platform's Bluetooth/Wi-Fi state broadcasts; the test fake exposes a controllable MutableStateFlow so no test touches a system service.

Not a Play-services listener, because there is none. ConnectionsClient exposes only per-operation callbacks and GoogleApiAvailability is a one-shot poll, so the GMS half of the verdict is re-read on each radio transition rather than observed — see GmsNearbyApi.