Where it lives, and what addresses a snapshot
The registry's stable published URL is https://verstandard.org/registry/, on the host this project already uses for its published schema $id values (VERSIONING.md §3.1) and its release directories (CHANGELOG.md's release links). This directory is the source of truth for what is served there.
A snapshot is addressed two ways, and both are needed:
- by integer:
snapshots/<n>/registry.json, served athttps://verstandard.org/registry/snapshots/<n>/registry.json; - by digest: the SHA-256 of the RFC 8785 (JCS) canonical form of the snapshot's parsed JSON.
The digest, not the URL, is what a Record binds to, and a Consumer that cannot fetch the snapshot is not thereby reading a broken Record: §2.3 is explicit that "if it cannot fetch that snapshot, the event stays opaque and the Record stays conformant."
| snapshot | date | JCS SHA-256 | file |
|---|---|---|---|
| 1 | 2026-08-25 | ea0fab7379049ff86e77be87d7db84efd818177ba6d5e5e66fd82ab34b9c09a5 | `snapshots/1/registry.json` |
Recompute it from the repository root:
Two properties of that construction are deliberate. The digest covers the canonical form of the parsed document, not the file's bytes, so reformatting the file — reindenting it, reordering its members — does not change the identity of a single entry; changing an entry does. And the digest is never carried inside the snapshot it addresses, because a document cannot contain its own digest. It lives here, in HISTORY.md, and in whatever Record cites the snapshot.
tests/test_record_registry.py recomputes the digest and fails if this table, HISTORY.md, or the snapshot itself has moved without the others.
