Inbound
A client's inbound messages one at a time, from Client.inbound: each next is the next message in the order the relay delivered it, awaiting mail when nothing is buffered. It is receive flattened, on the same single-flight wait underneath. Swift iterates it as an AsyncSequence (for try await message in client.inbound()), Kotlin collects asFlow(); both are thin hand-written wrappers over next. It holds the client, so a loop over it keeps the client alive, and releasing both ends the wait. A message goes to whichever next is waiting, so run one loop per client.