Skip to content
VERASPEC
Repository
Versioning policystable

§1 The two planes

1.1 The wire plane — what a Record declares about itself

Every Record carries two version fields:

FieldMeaningValue in VER 1.x
ver_versionThe record format a consumer must be able to parse"1.0" in 1.0.0 and 1.0.1 records; "1.1" in 1.1 records
cpnp_versionThe normalization pipeline that produced pixel_hash"1.0" for the whole of VER 1.x — see §4

ver_version moves only when the record format gains or changes fields. It is not a build number, a release date, or a patch level. A corrective release that clarifies prose and tightens a constraint does not move it: a record corrected under the 1.0.1 annex still declares "1.0", because a consumer written against 1.0.0 parses it without a single change.

cpnp_version identifies a pixel_hash universe. Two Records whose cpnp_version differ may not have their pixel_hash values compared, in either direction, for any purpose. §4 explains why this field is frozen for the whole of 1.x.

1.2 The artifact plane — what we published

The artifact set — specification text, JSON Schema, golden example, and the wire-profile lexicon — is versioned with semver over the published files:

ReleaseDateContentsState
1.0.02026-08-21VER-1.0-Specification.docx, ver-record.schema.json, example-record.json, wire-profile/org.verstandard.record.lexicon.jsonFrozen
1.0.12026-08-23Corrected schema, corrected example, normative errata annexCurrent
1.1.0-draft2026-08-23Additive draft schema, draft prose, lineage exampleDraft, unratified

An artifact release version answers "which files am I reading?". A ver_version answers "what shape is this record?". They move independently and they are not comparable. Release 1.0.1 publishes records that declare ver_version: "1.0"; that is correct and expected.

A release reissues only the files it changes. The artifact set is the set of files in force, not the set of files in one directory: 1.0.1 ships no wire-profile lexicon because the lexicon is unchanged from 1.0.0, and a consumer of 1.0.1 reads standards/ver/1.0.0/wire-profile/org.verstandard.record.lexicon.json. A release directory's RELEASE.md states which files of the set it reissues and which it inherits, so "the file is absent" never has to be read as "the file was withdrawn".