Architecture
Three layers, and dependencies flow one way. The format is a contract anyone can implement; the engine walks and replays it; the Commons federates it. Each layer is useful on its own, and no layer reaches back into the one above it.
.rpk spec ◄── dmipy-sim ◄── substrate-bank
(contract) (engine) (commons)
-
replay-pack-spec · the contract
The open
.rpkfile format — the replay invariant, the capability tiers, the substrate frame. Simulator-agnostic; the stable thing everything else is built on. Versioned and DOI'd. -
dmipy-sim · the engine
The reference walker: walk a substrate, replay a pack, read/write
.rpk. It has no opinion about banks, targets, or DOIs. A public engine means a public walker anyone can run. -
substrate-bank · the commons
The coordination layer: targets, seed ledgers, QA and aggregation, signed shards and the key registry, and freeze → citable snapshot. The system that turns a bank into a federated resource.
Why the separation matters
The engine never imports the Commons. That keeps the walker a clean, reusable tool — you can run it with
no idea the federation exists — while all the coordination logic (who contributed what, what's complete,
how to freeze) lives in one place. And keeping federation out of the file spec keeps the format lean: a
.rpk is just a replayable walk, whether it ever touches a bank or not.
A different entity
The Commons is intentionally its own thing, with its own home and its own mission. The engines are fast-moving and AI-maintained. The Commons is slow, permanent, and open — built to still be here, and still citable, long after any one release.