# Preserving existing records through the five-map release

The five new maps require two small session rules: momentum-preserving portals can advance a stage, and continuous stage gates advance progress without applying a new start-speed cap. An optional practice-stage selector also lets an invalidated practice spawn settle independently of the authored portal destination. These additions change the source fingerprint even though their new branches are inactive on the ten previously shipped maps.

The release therefore extends the explicit board-compatibility certificate instead of pretending the code hash stayed unchanged or assigning a new board to every old map.

## Reviewed source boundaries

- Previous deployed workspace fingerprint: `077f4293b446b922f602fee61592a6e5acf87f82c8bbfee5181bfddafdb5cbf7`.
- Reviewed current fingerprint: `a9b0902bac5fe3236183b202dd886e05ca0761fb9f1ceaa68691802867571f3d`.
- Original Boreas/Utopia/Mesa identity fingerprint remains `7eb182eab3c2e31803b4b94374242d02bd29821793b5ab66e86e705fc11d9ded`, traced to their original Git baseline and its separately reproduced six-route certificate.

The previous release came from a workspace containing uncommitted source. It is not reconstructed from a misleading Git commit label. The reviewed pre-change source was captured before the stage edits, verified against the published previous fingerprint, and preserved as `fixtures/classic-five-compatibility-baseline.json` (SHA-256 `ed88dbe92252cbfa214dab8c17d8184a4e032841a9acb42fa1b9bb014f82d93b`). All imported supporting game/physics/map modules are included, so another checkout can reproduce the comparison without the original ignored cache.

Source review and executable preconditions confirm that none of the ten old maps declares continuous progression, a momentum-preserving stage portal, or a momentum-preserving portal checkpoint. Kitsune's existing stage-reset portals already assigned the same stage before replacing velocity. Every prior map's exact geometry bytes, configuration, version, canonical initial state and original board inputs remain pinned.

## Differential results

**59,695 tick comparisons across 16 complete runs matched exactly** in player state, previous state, contact/movement result, timer state and emitted events. Every comparison recorded zero position/velocity/timing error, zero contact differences and no divergent tick.

All ten canonical ranked witnesses independently passed the current server replay verifier:

| Map | Canonical command ticks | Finish seconds |
| --- | ---: | ---: |
| Boreas | 3,387 | 39.495359 |
| Utopia | 4,531 | 53.349069 |
| Mesa | 4,365 | 52.635008 |
| Demise | 3,244 | 37.173847 |
| Kitsune | 6,333 | 91.940469 |
| Aircontrol | 3,312 | 35.686688 |
| Lux | 2,827 | 31.267094 |
| Nyx | 3,480 | 40.548546 |
| Reprise | 3,877 | 55.555266 |
| Fornax | 3,783 | 43.942787 |

Boreas/Utopia/Mesa also reran their six original stationary-start legacy/ranked witnesses. Those trajectory hashes reproduce the original Git-baseline certificate exactly. Their new canonical witnesses prepend ordinary movement commands to reach the documented start-deck point; no pose, velocity or contact state is injected. These generated routes are stored in `fixtures/compatibility/` and are test evidence, not human leaderboard entries.

Full results are in `fixtures/classic-five-compatibility-results.json`; the active compatibility certificate remains `fixtures/legacy-physics-compatibility.json`. The pre-change catalog and three-map certificate are retained as `fixtures/classic-five-prior-online-catalog.json` and `fixtures/classic-five-prior-physics-compatibility.json`.

## Fail-closed identity rules

The catalog always publishes the **actual current** physics fingerprint. A map retains an old board ID only when its current source hash, map ID, slug, version, geometry hash and configuration match the reviewed certificate. Each old identity hash must equal one of the two independently pinned baseline hashes, and re-serializing the full original board inputs must recreate its exact board ID. An arbitrary historical hash is not accepted. The five new maps have no compatibility pins and use ordinary identities from the true current source.

Changing movement source, any old map geometry, its configuration, or its version makes the build fail until compatibility is deliberately reviewed again or the relevant old identity is retired. A passing finite fixture set is not a mathematical proof for every possible input and does not establish native CSS parity.

Reproduce without writing:

```sh
npx tsx scripts/certify-classic-five-compatibility.ts --check
npx tsx scripts/certify-legacy-physics.ts
```

After reviewing any further core change, explicitly regenerate with `--write --reviewed-existing-noop`. The old three-map script remains a working verifier, but refuses to overwrite the expanded certificate and discard the seven additional maps' evidence.
