{
  "composition_rule": "Compatibility is decided per authority and then composed against an explicit reader profile; no highest, latest, or package version may stand in for all axes.",
  "current_tuple": {
    "bundleManifest": "libkungfu:spec:manifest:1",
    "capabilities": [
      "preservation",
      "inspection",
      "structural-verification",
      "semantic-verification",
      "canonical-fold",
      "admission",
      "execution"
    ],
    "journalEpoch": "kungfu.journal.container/e3b24c8d",
    "payloadSchemas": {
      "closedKernel": "hana-pod-owned/v1",
      "openDomain": "flatbuffers-single-schema-owner/v1"
    },
    "recordSchemas": {
      "episodeManifest": "kungfu.episode.manifest/v1",
      "factCut": "kungfu.fact-cut-kernel.contract/v1",
      "manifestCatalog": "kungfu.storage.manifest-catalog/v1"
    },
    "rootProtocols": {
      "factRoot": "kungfu.fact-root.canonical/v2",
      "opaqueBytes": "sha256:opaque-bytes/v1"
    },
    "workspaceLayout": "kungfu.workspace.episode-layout/v1"
  },
  "id": "kungfu-portable-format-compatibility",
  "non_claims": [
    "This contract does not declare the standalone format stable.",
    "This contract does not implement automatic migration or repair.",
    "This contract does not make historical Spec 0.1 normative.",
    "This contract does not make JSON the universal authority encoding.",
    "The retained corpus does not contain private or real user workspace material.",
    "This contract does not mutate a real user .kungfu workspace.",
    "This contract does not introduce a hidden journal hot-path adapter.",
    "This contract does not declare pre-v4 journal compatibility.",
    "This contract does not claim byte equality between legacy and canonical Fact roots.",
    "This contract does not invent missing facts or semantics.",
    "This contract does not make package semver a format compatibility algorithm."
  ],
  "projection": {
    "generator": "framework/spec/scripts/generate.js",
    "policy": "canonical-json-sorted-keys-utf8-lf/v1",
    "root_protocol": "sha256:opaque-bytes/v1",
    "sources": [
      {
        "path": "framework/format/kungfu-portable-format-authority.contract.json",
        "root": "sha256:935ebf826adf19e31a6362380c06405b59b94fcbb2df66063d205571243a7eff"
      },
      {
        "path": "framework/format/kungfu-required-reader.contract.json",
        "root": "sha256:ead20b4326409b708dba138aeb79b2f4e3b5c1c58c83dfd57a790aebf19ac25d"
      },
      {
        "path": "framework/format/kungfu-format-migration.contract.json",
        "root": "sha256:141f9477875682175b015dadd32852f69765c52aa196221f344878092c60492b"
      },
      {
        "path": "framework/format/compatibility/v4-alpha/index.json",
        "root": "sha256:ac73f51ee497258d112cdb219e9f885a70e7d49747ec61f755cc364173b60f76"
      },
      {
        "path": "framework/format/compatibility/v4-alpha/releases/4.0.0-alpha.1.json",
        "root": "sha256:90222004bc27dd4d1dbf9910029cec257e7b445c768c5424649beeb426d113a6"
      }
    ]
  },
  "reader_outcomes": {
    "downgrade": {
      "nextAction": "use-a-reader-that-supports-the-source",
      "readerOutcome": "reject",
      "reason": "FORMAT_DOWNGRADE_REFUSED"
    },
    "exact": {
      "nextAction": "continue",
      "readerOutcome": "read",
      "reason": "FORMAT_EXACT"
    },
    "malformed": {
      "nextAction": "preserve-source-and-inspect",
      "readerOutcome": "reject",
      "reason": "FORMAT_TUPLE_MALFORMED"
    },
    "optional-unknown": {
      "nextAction": "preserve-and-report",
      "readerOutcome": "read-degraded",
      "reason": "FORMAT_OPTIONAL_UNKNOWN"
    },
    "supported-edge": {
      "nextAction": "run-explicit-cold-path-migration",
      "readerOutcome": "migration-required",
      "reason": "FORMAT_SUPPORTED_MIGRATION"
    },
    "unsupported-edge": {
      "nextAction": "install-compatible-reader-or-export",
      "readerOutcome": "migration-required",
      "reason": "FORMAT_UNSUPPORTED_EDGE"
    }
  },
  "schema": "kungfu.spec.compatibility-map/v1",
  "status": "current",
  "tuple_contract": {
    "comparison": "exact-owned-axis-plus-declared-directed-edges",
    "requiredAxes": [
      "journalEpoch",
      "workspaceLayout",
      "recordSchemas",
      "payloadSchemas",
      "rootProtocols",
      "bundleManifest",
      "capabilities"
    ],
    "semverRole": "display-and-package-pickup-only",
    "unknownAxis": "reject",
    "unknownOptionalMember": "read-degraded",
    "unknownRequiredMember": "migration-required"
  },
  "v4_alpha_baseline": {
    "append_policy": "released baselines are immutable; every successor binds the previous release root and declares every changed authority source",
    "format_line": "v4-alpha",
    "latest_release": "4.0.0-alpha.1",
    "latest_release_root": "sha256:c9addc577a3eb2396d4cc007f18a09abcdfc74dbae6e2de37326fac5af64520f",
    "source_bindings": [
      {
        "axis": "composition",
        "path": "framework/format/kungfu-portable-format-authority.contract.json",
        "root": "sha256:935ebf826adf19e31a6362380c06405b59b94fcbb2df66063d205571243a7eff"
      },
      {
        "axis": "requiredReader",
        "path": "framework/format/kungfu-required-reader.contract.json",
        "root": "sha256:ead20b4326409b708dba138aeb79b2f4e3b5c1c58c83dfd57a790aebf19ac25d"
      },
      {
        "axis": "migrationRepair",
        "path": "framework/format/kungfu-format-migration.contract.json",
        "root": "sha256:141f9477875682175b015dadd32852f69765c52aa196221f344878092c60492b"
      },
      {
        "axis": "retainedConformance",
        "path": "framework/format/conformance/portable-format-vectors/index.json",
        "root": "sha256:c675ea10be9691fe610bc0c229217c4e9cd68fcc8ef05b8b75a6d9a81a3ec8fd"
      }
    ],
    "stability": {
      "incompatibleMutationRule": "append a successor release with explicit changed source roots and migration or refusal semantics; never rewrite this release",
      "stableV4Claimed": false,
      "status": "pre-stable-alpha-baseline"
    }
  }
}
