# Protocol Specs

The authoritative, **implemented** protocol specifications for the v2 engine. These are the documents the
engine's `§`-comments point at as the source of truth (`SimulationEngine.js`, `DisconnectTracker.js`,
`DeltaForwardWire.js`, `BackgroundJoin.js`, the `tests/design-*.test.js` design-spec suites, …). They moved
here out of `research/synced-clock/` because they are no longer research, they describe shipped behavior.

| Spec | Covers |
| --- | --- |
| [`DESIGN_PARTICIPATION.md`](./DESIGN_PARTICIPATION.md) | The participation / attendance / messaging protocol (announced-set membership, discover/`stopParticipating`, the read & poll contract, retention, beat/wire mechanics, §13.x recovery). The most heavily-referenced spec. |
| [`ATTENDANCE_CORROBORATION.md`](./ATTENDANCE_CORROBORATION.md) | Sparse alive-runs attendance, the per-(peer,player) forward + corroboration, and the §13.6 liveness-coverage canon tiebreak. (Formerly `LIVENESS_CORROBORATION.md`.) |
| [`SPARSE_CHECKPOINT_PROTOCOL.md`](./SPARSE_CHECKPOINT_PROTOCOL.md) | The sparse checkpoint / agreeUntil watermark protocol (delta-sized assert windows, per-peer agree-ack). |
| [`CHECKPOINT_RESOLUTION.md`](./CHECKPOINT_RESOLUTION.md) | The canon winner/loser decision over a contested range (the `CanonDecision.js` core). |
| [`DESIGN_BACKGROUND_JOIN.md`](./DESIGN_BACKGROUND_JOIN.md) | The background-join protocol: a late joiner commits a second synced frame atomically once settled. |

The remaining design/research notes (the synced-clock EDGE cases, prior-art survey, research plan, honest
limits) stay in [`../research/synced-clock/`](../research/synced-clock/), that is genuinely exploratory
material, some of it still open.
