CoreVoters
A fixed external core holds every voter seat; session peers ride as admitted learners.
This is the server-core placement: quorum and durable state live on the core machines (all of which vote in every game), so the game survives the loss of a minority of core nodes and any number of players. Session peers receive the committed log and propose via learner→leader forwarding — the consuming layer (TurnSequencer, GameSession.appChannel) is identical to SessionPeers.