attachDirectoryOnly
Publish client → self into the replicated attachment directory only, without registering a per-connection unicast spoke — the deliberate exception to admit's attach-and-register invariant.
This is the game-path publish: on the room-hub topology a player's frames are delivered by the hosting us.tractat.kuilt.core.RoomHubSeam's own membership (the leader relays down the room's federated seam), so there is no separate app-unicast spoke for this connection to register in the RoutedUnicastRouter — the router's register-without-attach hazard does not apply because nothing routes single-addressee unicasts to this client. Only the directory half is meaningful: it tells the rest of the core "this player's packets flow through me", the fact the leader's RoutedRaftTransport reads to pick its relay hop.
Pairs with detachDirectoryOnly for teardown; a failover re-attachDirectoryOnly on a surviving server supersedes the stale entry under last-writer-wins, exactly as admit does.
This is a documented seam, not the steady state: follow-up #1384 tracks converging the two AttachmentDirectory publish paths (this connection-layer game-path publisher and admit's spoke-coupled one) onto a single mechanism, at which point this directory-only method folds back into admit. Consumed by attachConnections.