Extensions allow ecosystem-specific metadata without breaking core interoperability.

Rules

  1. Use reverse-domain namespace keys (for example, dev.reciprium.terraform).
  2. Do not redefine or shadow core field semantics.
  3. Unknown extensions MUST be preserved by relays/storage systems.
  4. Verifiers that do not recognize an extension MUST ignore it unless local policy explicitly requires it.
  5. Verifiers that do recognize an extension MAY enforce its semantics.
  • Keep extension values structured (object/array primitives), not opaque blobs.
  • Extension authors SHOULD include a version key in extension payloads.
  • Treat extension data as optional unless explicitly policy-required.

Example

{
  "extensions": {
    "dev.reciprium.terraform": {
      "workspace": "prod",
      "planDigest": "sha256:..."
    }
  }
}

Extensions should increase context, not become hidden dependencies.