[
  {
    "artifactFamilyKey": "canonical-markdown-fingerprints",
    "schemaVersion": "1.0.0",
    "consumerGuidance": "identity-check",
    "digestSemantics": "exact-file-bytes",
    "enumWideningPolicy": "closed-breaking",
    "zeroRecordFileValidity": "not-record-oriented",
    "additiveChangeClasses": [
      "artifact-added",
      "field-added"
    ],
    "breakingChangeClasses": [
      "artifact-bytes-changed",
      "artifact-removed",
      "contract-digest-changed",
      "digest-framing-changed",
      "field-removed",
      "path-pattern-changed",
      "schema-digest-changed"
    ],
    "identifierStability": [
      {
        "identifierName": "digest",
        "mechanicalInputs": "sha256 digest of the governed file or text bytes",
        "stabilityRule": "content-addressed",
        "uniquenessScope": "artifact-family"
      },
      {
        "identifierName": "slug",
        "mechanicalInputs": "source descriptor slug",
        "stabilityRule": "stable-while-source-descriptor-stable",
        "uniquenessScope": "dataset"
      }
    ]
  },
  {
    "artifactFamilyKey": "citation-targets",
    "schemaVersion": "1.0.0",
    "consumerGuidance": "derived-consumer-surface",
    "digestSemantics": "exact-file-bytes",
    "enumWideningPolicy": "permissive-additive",
    "zeroRecordFileValidity": "valid-empty-file",
    "additiveChangeClasses": [
      "enum-value-added",
      "field-added",
      "record-added"
    ],
    "breakingChangeClasses": [
      "contract-digest-changed",
      "digest-framing-changed",
      "enum-value-removed",
      "field-removed",
      "path-pattern-changed",
      "record-changed",
      "record-removed",
      "schema-digest-changed"
    ],
    "identifierStability": [
      {
        "identifierName": "citationAddress",
        "mechanicalInputs": "slug, targetKind, source path coordinates, and local coordinate",
        "stabilityRule": "stable-while-structural-inputs-stable",
        "uniquenessScope": "dataset"
      },
      {
        "identifierName": "citationAddress",
        "mechanicalInputs": "slug, targetKind, source path coordinates, and local coordinate",
        "stabilityRule": "stable-while-structural-inputs-stable",
        "uniquenessScope": "dataset"
      },
      {
        "identifierName": "citationTargetId",
        "mechanicalInputs": "dataset digest and citationAddress",
        "stabilityRule": "version-scoped",
        "uniquenessScope": "dataset"
      },
      {
        "identifierName": "datasetDigest",
        "mechanicalInputs": "dataset lock manifest datasetDigest",
        "stabilityRule": "content-addressed",
        "uniquenessScope": "dataset"
      },
      {
        "identifierName": "textDigest",
        "mechanicalInputs": "sha256 digest of the governed file or text bytes",
        "stabilityRule": "content-addressed",
        "uniquenessScope": "artifact-family"
      }
    ]
  },
  {
    "artifactFamilyKey": "consumer-nodes",
    "schemaVersion": "1.0.0",
    "consumerGuidance": "derived-consumer-surface",
    "digestSemantics": "exact-file-bytes",
    "enumWideningPolicy": "permissive-additive",
    "zeroRecordFileValidity": "valid-empty-file",
    "additiveChangeClasses": [
      "enum-value-added",
      "field-added",
      "record-added"
    ],
    "breakingChangeClasses": [
      "contract-digest-changed",
      "digest-framing-changed",
      "enum-value-removed",
      "field-removed",
      "path-pattern-changed",
      "record-changed",
      "record-removed",
      "schema-digest-changed"
    ],
    "identifierStability": [
      {
        "identifierName": "canonicalPath",
        "mechanicalInputs": "slug, version date, artifact path, and structural path",
        "stabilityRule": "stable-while-structural-inputs-stable",
        "uniquenessScope": "slug-version"
      },
      {
        "identifierName": "markdownDigest",
        "mechanicalInputs": "sha256 digest of the governed file or text bytes",
        "stabilityRule": "content-addressed",
        "uniquenessScope": "artifact-family"
      },
      {
        "identifierName": "slug",
        "mechanicalInputs": "source descriptor slug",
        "stabilityRule": "stable-while-source-descriptor-stable",
        "uniquenessScope": "dataset"
      },
      {
        "identifierName": "slugFingerprintDigest",
        "mechanicalInputs": "sha256 digest of the governed file or text bytes",
        "stabilityRule": "content-addressed",
        "uniquenessScope": "artifact-family"
      }
    ]
  },
  {
    "artifactFamilyKey": "consumer-structural-targets",
    "schemaVersion": "1.0.0",
    "consumerGuidance": "derived-consumer-surface",
    "digestSemantics": "exact-file-bytes",
    "enumWideningPolicy": "permissive-additive",
    "zeroRecordFileValidity": "valid-empty-file",
    "additiveChangeClasses": [
      "enum-value-added",
      "field-added",
      "record-added"
    ],
    "breakingChangeClasses": [
      "contract-digest-changed",
      "digest-framing-changed",
      "enum-value-removed",
      "field-removed",
      "path-pattern-changed",
      "record-changed",
      "record-removed",
      "schema-digest-changed"
    ],
    "identifierStability": [
      {
        "identifierName": "canonicalPath",
        "mechanicalInputs": "slug, version date, artifact path, and structural path",
        "stabilityRule": "stable-while-structural-inputs-stable",
        "uniquenessScope": "slug-version"
      },
      {
        "identifierName": "slug",
        "mechanicalInputs": "source descriptor slug",
        "stabilityRule": "stable-while-source-descriptor-stable",
        "uniquenessScope": "dataset"
      },
      {
        "identifierName": "structuralPath",
        "mechanicalInputs": "slug, version date, artifact path, and structural path",
        "stabilityRule": "stable-while-structural-inputs-stable",
        "uniquenessScope": "slug-version"
      }
    ]
  },
  {
    "artifactFamilyKey": "cross-references",
    "schemaVersion": "1.0.0",
    "consumerGuidance": "derived-consumer-surface",
    "digestSemantics": "exact-file-bytes",
    "enumWideningPolicy": "permissive-additive",
    "zeroRecordFileValidity": "valid-empty-file",
    "additiveChangeClasses": [
      "enum-value-added",
      "field-added",
      "record-added"
    ],
    "breakingChangeClasses": [
      "contract-digest-changed",
      "digest-framing-changed",
      "enum-value-removed",
      "field-removed",
      "path-pattern-changed",
      "record-changed",
      "record-removed",
      "schema-digest-changed"
    ],
    "identifierStability": [
      {
        "identifierName": "slug",
        "mechanicalInputs": "source descriptor slug",
        "stabilityRule": "stable-while-source-descriptor-stable",
        "uniquenessScope": "dataset"
      },
      {
        "identifierName": "sourceCanonicalPath",
        "mechanicalInputs": "slug, version date, artifact path, and structural path",
        "stabilityRule": "stable-while-structural-inputs-stable",
        "uniquenessScope": "slug-version"
      },
      {
        "identifierName": "targetCanonicalPath",
        "mechanicalInputs": "slug, version date, artifact path, and structural path",
        "stabilityRule": "stable-while-structural-inputs-stable",
        "uniquenessScope": "slug-version"
      }
    ]
  },
  {
    "artifactFamilyKey": "definitions",
    "schemaVersion": "1.0.0",
    "consumerGuidance": "derived-consumer-surface",
    "digestSemantics": "exact-file-bytes",
    "enumWideningPolicy": "permissive-additive",
    "zeroRecordFileValidity": "valid-empty-file",
    "additiveChangeClasses": [
      "enum-value-added",
      "field-added",
      "record-added"
    ],
    "breakingChangeClasses": [
      "contract-digest-changed",
      "digest-framing-changed",
      "enum-value-removed",
      "field-removed",
      "path-pattern-changed",
      "record-changed",
      "record-removed",
      "schema-digest-changed"
    ],
    "identifierStability": [
      {
        "identifierName": "slug",
        "mechanicalInputs": "source descriptor slug",
        "stabilityRule": "stable-while-source-descriptor-stable",
        "uniquenessScope": "dataset"
      },
      {
        "identifierName": "sourceCanonicalPath",
        "mechanicalInputs": "slug, version date, artifact path, and structural path",
        "stabilityRule": "stable-while-structural-inputs-stable",
        "uniquenessScope": "slug-version"
      }
    ]
  },
  {
    "artifactFamilyKey": "frl-caveats",
    "schemaVersion": "1.0.0",
    "consumerGuidance": "derived-consumer-surface",
    "digestSemantics": "exact-file-bytes",
    "enumWideningPolicy": "permissive-additive",
    "zeroRecordFileValidity": "valid-empty-file",
    "additiveChangeClasses": [
      "enum-value-added",
      "field-added",
      "record-added"
    ],
    "breakingChangeClasses": [
      "contract-digest-changed",
      "digest-framing-changed",
      "enum-value-removed",
      "field-removed",
      "path-pattern-changed",
      "record-changed",
      "record-removed",
      "schema-digest-changed"
    ],
    "identifierStability": [
      {
        "identifierName": "caveatId",
        "mechanicalInputs": "slug, version date, artifact path, and structural path",
        "stabilityRule": "stable-while-structural-inputs-stable",
        "uniquenessScope": "slug-version"
      },
      {
        "identifierName": "slug",
        "mechanicalInputs": "source descriptor slug",
        "stabilityRule": "stable-while-source-descriptor-stable",
        "uniquenessScope": "dataset"
      }
    ]
  }
]
