Reciprium versioning has two layers with different responsibilities.

Layer 1: Envelope Protocol Version

  • Field: spec.version
  • Purpose: governs core contract compatibility
  • Current stable value: 1.0.0

Breaking core semantics requires a new major envelope version.

Layer 2: Domain Type Version

  • Field: type.version
  • Purpose: allows category/kind-specific evolution without forcing envelope major bumps

Compatibility Policy

  1. Additive optional fields are backward compatible.
  2. Required-field removal or semantic redefinition is a breaking change.
  3. New type kinds/versions are allowed if core envelope invariants stay stable.

Verifier Behavior

  • Verifiers SHOULD fail closed for violated required invariants.
  • Verifiers MAY ignore unknown optional fields.
  • Verifiers SHOULD log unknown major protocol versions as unsupported.