{
  "schemaVersion": 1,
  "generatedBy": "SAGE Editor Suite/Ship Config Balance/scripts/generate-ship-config-balance.mjs",
  "authorityClasses": [
    "ses-source",
    "ses-derived",
    "programs-observe-only",
    "combat-v2-pending",
    "editor-only-or-dormant",
    "missing"
  ],
  "pipeline": [
    {
      "id": "ship-base",
      "authority": "ses-source",
      "source": "SAGE Editor Suite/Ship Configurator/ships/*.json",
      "destination": "base stat denominator and role identity"
    },
    {
      "id": "component-curves",
      "authority": "ses-source",
      "source": "ship_configurations-combatv5.json componentAttributes",
      "destination": "editable group/class/tier power cells"
    },
    {
      "id": "composition",
      "authority": "ses-derived",
      "source": "scripts/compose-ship-stats.mjs",
      "parity": "tools/c4-converter/tests/ship-config-balance-parity.ts"
    },
    {
      "id": "acquisition",
      "authority": "ses-derived",
      "source": "Resource Atlas generated recipe/raw/geography evidence",
      "boundary": "No automatic composite difficulty score."
    },
    {
      "id": "runtime-override",
      "authority": "programs-observe-only",
      "fields": [
        "max_ap",
        "ap_regen_rate",
        "ammo_capacity"
      ]
    }
  ],
  "journeys": [
    {
      "id": "audit-overview",
      "status": "covered"
    },
    {
      "id": "curve-editor",
      "status": "covered"
    },
    {
      "id": "ship-impact",
      "status": "covered"
    },
    {
      "id": "acquisition-evidence",
      "status": "covered"
    },
    {
      "id": "role-invariants",
      "status": "covered"
    },
    {
      "id": "draft-export",
      "status": "covered"
    }
  ],
  "decisions": [
    {
      "id": "ceiling-not-clamp",
      "status": "locked",
      "decision": "80% is an explicit review ceiling; applying a draft remains separate."
    },
    {
      "id": "difficulty-evidence-only",
      "status": "locked",
      "decision": "Recipe/resource difficulty remains evidence while its authorities are unsettled."
    },
    {
      "id": "evidence-receipt",
      "status": "locked",
      "decision": "Every exported power-target draft references one immutable source/model snapshot; source drift requires human re-review."
    },
    {
      "id": "shared-power-cell",
      "status": "verified",
      "decision": "Concrete recipes can share one group-level power cell; heterogeneity is surfaced rather than hidden."
    },
    {
      "id": "base-only-component-lane",
      "status": "verified",
      "decision": "Active components without Class/Tier cells remain searchable and acquisition-reachable as explicit non-stageable base-only evidence lanes."
    }
  ]
}
