ENGINE-AGNOSTIC · ZERO RUNTIME DEPENDENCIES

CI for the save files
your players already have.

Weave every historical JSON save through declarative migrations, validate each version, and prove the result is deterministic before the release reaches players.

node bin/saveweaver.js matrix --project examples/space-ranger
OLD SAVEv1
OLD SAVEv2
CURRENTv3
releaseschema · hash · receipt

GENERATED FROM REPOSITORY FIXTURES

A compatibility claim you can inspect.

Loading matrix…
Fixture Source Target Migration chain Proof
Loading generated matrix data…

Each passing row validates source and target schemas, runs twice for deterministic SHA-256 output, then runs once more to prove current-save idempotency.

RELEASE WORKFLOW

Guard the data contract, not just today's serializer.

01

Keep real old saves

Commit small, synthetic or redacted fixtures from every supported public version.

02

Migrate as data

Use ten deterministic operations. No eval, scripts, network, or hidden coercion.

03

Prove the path

CI validates each contract, migration lock, replay hash, and final idempotency.

04

Write with evidence

Explicit output, content-addressed backup, atomic replacement, and SHA-256 receipt.