MultipeerRoomHost
Multipeer-Connectivity room host. Wraps a Loom and a Pattern, opens a host session via SeamRoomFactory, and exposes it as a single Room.
Single-room lifecycle: one MultipeerRoomHost hosts one session.
Lifecycle:
start builds a Room via SeamRoomFactory.host and invokes onRoom once. Suspends until the calling scope is cancelled; on cancellation the Room is left cleanly.
Calling start a second time on the same instance throws IllegalStateException.
Frame routing, per-peer addressing, and membership tracking are owned by Room — the manual demux that MCLeaderListener carried before :kuilt-session existed is gone.
JNA dylib note: this class is pure-commonMain Kotlin over Loom/Room. It has no native-code path. The MultipeerPeerLinkFactory dylib basenames and JNA constants are unchanged and outside the scope of this class.