# JSON Contracts

SF uses `schemaVersion` for JSON files whose shape is owned by SF runtime code.
Use a numeric value starting at `1`.

Use `version` only for package, plugin, extension, or release versions. Do not
use `version` as a schema marker for SF-owned data.

For map-like JSON where top-level keys are domain entries, put the marker under
`_meta.schemaVersion`.

The `check:versioned-json` script parses every tracked `.json` file and enforces
`schemaVersion` on the SF-owned contract allowlist.
