Phase 37 · planning only

Multiplayer architecture rehearsal

Pure types and documentation — no transports yet. Tables synchronize via ledger commits, not mirrored rack layouts.

Sample room

Rose rehearsal salon · status in_hand · ledger ledger-sample-rehearsal-east-host

  • eastHost wind

    seated

    Sample Host

  • south

    seated

    South Guest

  • west

    seated

    West Guest

  • north

    seated

    North Guest

Observers (preview only): Quiet observer (preview)

Authority model · host_authoritative

  • Host-authoritative rehearsal means the designated host applies the rules engine locally and proposes ledger commits peers reconcile against.
  • Every accepted beat still mirrors the append-only ledger shape used in solo table — sequence + game event identity — so clients rebuild table state by replay, not by trusting transient UI snapshots.
  • When peers disagree, they compare ledger prefixes and authority labels on pending commits before advancing sequence pointers.

Reconnect policy (constants only)

Reconnect grace 120s. Seat stays marked for the reconnecting player during grace. Bot substitution is disabled; winds stay empty or paused until humans return. Host may pause the table etiquette clock while sorting reconnects.

Architecture summary

Rose rehearsal salon · in_hand

  • Ledger ledger-sample-rehearsal-east-host: synchronize accepted game events in order—never transient rack layouts.
  • Host-authoritative rehearsal means the designated host applies the rules engine locally and proposes ledger commits peers reconcile against.
  • Every accepted beat still mirrors the append-only ledger shape used in solo table — sequence + game event identity — so clients rebuild table state by replay, not by trusting transient UI snapshots.
  • When peers disagree, they compare ledger prefixes and authority labels on pending commits before advancing sequence pointers.
  • Reconnect grace 120s. Seat stays marked for the reconnecting player during grace. Bot substitution is disabled; winds stay empty or paused until humans return. Host may pause the table etiquette clock while sorting reconnects.