LoomRoomHost
Transport-agnostic single-room RoomHost over any Loom. Opens one host session via SeamRoomFactory.host, hands the live Room to onRoom exactly once, then suspends until cancelled (leaving the room cleanly on the way out).
Constructed with an us.tractat.kuilt.core.InMemoryLoom it is the in-memory host double for admit-handshake tests: pair it with a SeamRoomFactory.join over the same loom and the Hello → Welcome → onPeer exchange runs entirely under virtual time, no socket bound.
The fabric-specific hosts delegate their session lifecycle here; only the multi-connection accept loop (Ktor) and platform cleanup live in those adapters.
Parameters
the Loom to host over.
the session Pattern (session name) to advertise.
time source for partition detection; defaults to wall-clock kotlin.time.Clock.System. Inject a virtual clock in tests.
partition-detection timing.