{
  "schema_version": "kj-avds4-interop-v1",
  "project_id": "kj-dashboard",
  "mode": "static-token-bridge",
  "bridge_version": "4.0.0",
  "upstream": {
    "system_release_version": "4.6.0",
    "package": "@sgeo/ui-kit",
    "reviewed_version": "4.5.1",
    "direct_package_adoption": false,
    "reason": "KJ is a static HTML/JavaScript surface without a React build. Its local token bridge is intentionally not represented as a direct ui-kit package install."
  },
  "consumes": {
    "token_contract": "avds-tokens.css",
    "presentation_patterns": [
      "PillTabs",
      "MetricCard",
      "DataTable",
      "PublicSummaryStrip",
      "CompactCompareCard",
      "SourceCard",
      "ProvenanceCard",
      "MethodDisclosure",
      "DataFreshness",
      "DataQualityFlag",
      "StatePanel",
      "ReportToolbar",
      "FreshnessLedger",
      "RuleStatusStrip"
    ]
  },
  "coverage": {
    "metric": "reviewed-reusable-ui-patterns",
    "covered_patterns": 14,
    "eligible_patterns": 16,
    "percent": 88,
    "scope": "Reusable presentation pattern families reviewed on the public KJ surfaces.",
    "excludes": [
      "product data and editorial methodology",
      "Chart.js rendering and evidence interactions",
      "runtime loading and freshness policy"
    ]
  },
  "publishes": {
    "candidate_patterns": [
      {
        "id": "freshness-ledger",
        "status": "promoted-to-avds-stable",
        "boundary": "A sequence of independent timestamps: computation, verified source frontier and latest target event. AV DS owns the neutral component contract; KJ keeps all freshness thresholds and data semantics."
      },
      {
        "id": "rule-status-strip",
        "status": "promoted-to-avds-stable",
        "boundary": "A short norm, exception and prohibited-form strip. AV DS owns presentation and accessibility; KJ retains the language rule and every classification decision."
      },
      {
        "id": "recoverable-static-data-load",
        "status": "adopted-presentation-runtime-local",
        "boundary": "AV DS StatePanel owns the visible loading, error and retry-state presentation. KJ retains fetch coordination, retry limits, recovery timing and evidence-payload policy."
      },
      {
        "id": "accessible-visual-data-disclosure",
        "status": "keep-local-until-second-consumer",
        "boundary": "The treemap and Sankey disclosure depends on KJ evidence filters and Chart.js; only the accessibility test pattern is reusable today."
      },
      {
        "id": "evidence-cluster-inspector",
        "status": "proposed-for-avds-review",
        "boundary": "A grouped evidence reader that preserves cluster context, source provenance, a focused evidence link and a machine-readable export. It is proposed as a neutral AV DS pattern but remains owned by KJ until a second product confirms the API."
      }
    ]
  },
  "verification": [
    "node scripts/check_interop_contracts.mjs",
    "./scripts/verify_ui_smoke.sh",
    "./scripts/verify_live.sh"
  ],
  "notes": "KJ tracks AVDS system release 4.6.0 and design capability 4.5.1 while retaining the verified 4.0.0 static token bridge without a React runtime. AV DS owns generic APIs, presentation contracts and visual gates. KJ owns data fetching, evidence policy, Chart.js runtime, freshness thresholds and all product-specific interaction rules."
}
