federatedCore
The federated server-core placement: like serverCore — a fixed core holds every voter seat and session peers ride as learners — but each node's Raft transport is wrapped in a cross-server routing decorator so a leader on one server can reach a player behind a different server. This is the placement gameNodeRoomFederated uses, and the one a federated player passes to gameNodeRoom.
A federated game runs one Raft cluster whose members are spread over several servers: the servers form a fully-meshed core, each player connects to whichever server is nearest, and the committed log must reach every player regardless of which server leads. Plain serverCore can only deliver to nodes a server is directly wired to — a player behind another server never receives AppendEntries. This placement fixes that by wrapping ConsensusBinding.transport in a routing decorator (a RoutedRaftTransport) that relays over binding.channel(RAFT_RELAY_CHANNEL) along the bounded path player → server → core → server → player, preserving the true Raft origin end-to-end.
A peer whose id is in core is wrapped as a server relay endpoint (it may take one core hop, choosing it from attachment); any other peer is wrapped as a player relay endpoint (it always forwards to its single server and never routes for anyone else). The player branch never consults attachment — a federated player therefore passes attachment = { null } (it owns no directory), and only the servers pass a live lookup.
Parameters
The NodeIds of the server core — every one of them votes in this game. Must be non-empty.
The live (player) -> the server it is behind lookup a server uses to pick its one core hop for a remote player. Required — a defaulted lookup would silently disable cross-server delivery (optional ≠ tuning). A player (never in core) never reads it; pass { null }.