{
  "schemaVersion": "1.0.0",
  "roles": [
    {"id":"owner","purpose":"Contract ownership endpoint bound to the governance contract; it is not a separately staffed human role.","threshold":{"minimum":3,"populationMinimum":5},"members":[],"assignmentStatus":"unassigned-blocking","binding":"governance-contract"},
    {"id":"governance","purpose":"Propose, confirm, and execute selector-bounded timelocked actions.","threshold":{"minimum":3,"populationMinimum":5},"members":[],"assignmentStatus":"unassigned-blocking"},
    {"id":"guardian","purpose":"Pause-only emergency authority over pre-authorized targets.","threshold":{"minimum":1,"populationMinimum":1},"members":[],"assignmentStatus":"unassigned-blocking"},
    {"id":"treasury","purpose":"Receive explicitly reconciled fees or surplus; cannot adjudicate or attest.","threshold":{"minimum":2,"populationMinimum":3},"members":[],"assignmentStatus":"unassigned-blocking"},
    {"id":"attesters","purpose":"Submit objective evidence within a documented evidence domain.","threshold":{"minimum":2,"populationMinimum":3},"members":[],"assignmentStatus":"unassigned-blocking"},
    {"id":"adjudicators","purpose":"Resolve evidence-backed disputes subject to conflict recusals.","threshold":{"minimum":2,"populationMinimum":3},"members":[],"assignmentStatus":"unassigned-blocking"},
    {"id":"release-attester","purpose":"Attest that hashes, evidence freshness, drills, and status gates match the candidate; cannot authorize alone.","threshold":{"minimum":1,"populationMinimum":1},"members":[],"assignmentStatus":"unassigned-blocking"},
    {"id":"incident-responders","purpose":"Acknowledge alerts, coordinate containment, preserve evidence, and escalate; no implied on-chain authority.","threshold":{"minimum":2,"populationMinimum":3},"members":[],"assignmentStatus":"unassigned-blocking"},
    {"id":"reconciliation-responders","purpose":"Independently verify liabilities, credits, caps, settlement, receipt stores, and cross-chain observations.","threshold":{"minimum":2,"populationMinimum":3},"members":[],"assignmentStatus":"unassigned-blocking"}
  ],
  "separationRules": [
    {"left":"guardian","right":"governance","overlapAllowed":false},
    {"left":"guardian","right":"treasury","overlapAllowed":false},
    {"left":"guardian","right":"attesters","overlapAllowed":false},
    {"left":"guardian","right":"adjudicators","overlapAllowed":false},
    {"left":"guardian","right":"release-attester","overlapAllowed":false},
    {"left":"governance","right":"treasury","overlapAllowed":false},
    {"left":"governance","right":"attesters","overlapAllowed":false},
    {"left":"governance","right":"adjudicators","overlapAllowed":false},
    {"left":"governance","right":"release-attester","overlapAllowed":false},
    {"left":"treasury","right":"attesters","overlapAllowed":false},
    {"left":"treasury","right":"adjudicators","overlapAllowed":false},
    {"left":"treasury","right":"release-attester","overlapAllowed":false},
    {"left":"attesters","right":"adjudicators","overlapAllowed":false},
    {"left":"attesters","right":"release-attester","overlapAllowed":false},
    {"left":"adjudicators","right":"release-attester","overlapAllowed":false},
    {"left":"release-attester","right":"incident-responders","overlapAllowed":false},
    {"left":"release-attester","right":"reconciliation-responders","overlapAllowed":false},
    {"left":"incident-responders","right":"reconciliation-responders","overlapAllowed":false}
  ],
  "keyLifecycle": {
    "inventoryRequired": true,
    "keyMaterialProhibited": true,
    "rotation": {
      "scheduledMaximumAgeDays": 180,
      "preconditions": ["replacement subject evidenced","separation check passes","threshold remains satisfiable","old subject revocation prepared","timelocked governance action reviewed"],
      "postconditions": ["old subject removed or revoked","threshold rechecked","monitoring routes updated","evidence timestamp recorded"]
    },
    "revocation": {
      "triggerClasses": ["suspected-compromise","confirmed-compromise","loss-of-control","role-change","separation-breach","conflict-nondisclosure"],
      "compromiseAction": "pause affected supported targets, revoke or rotate through the bounded recovery runbook, and do not unpause until reconciliation completes",
      "maximumAcknowledgeMinutes": 15
    }
  },
  "recusalAndConflict": {
    "disclosureRequiredBeforeAction": true,
    "recusalRequiredFor": ["direct financial interest","control of a party","authorship of contested evidence","prior participation in the disputed action","unresolved security incident involvement"],
    "recusedSubjectsExcludedFromNumeratorAndDenominator": true,
    "minimumNonConflictedThresholdStillRequired": true,
    "quorumAlgorithm": {
      "eligiblePopulation": "assigned evidenced members minus disclosed recused members",
      "approvalNumerator": "distinct approvals from eligible population only",
      "requiredApprovals": "the fixed role threshold; never recomputed downward after recusal",
      "failClosedCondition": "if eligible population is below the fixed threshold, the action cannot proceed and a replacement must be evidenced"
    },
    "recordFields": ["caseId","subjectId","conflictClass","disclosedAtUtc","recused","replacementSubjectId","evidenceRefs"]
  },
  "responderCoverage": {
    "requiredRoles": ["incident-responders","reconciliation-responders"],
    "minimumDistinctSubjectsPerRole": 3,
    "minimumAcknowledgersPerIncident": 2,
    "continuousCoverageEvidenceRequired": true,
    "escalationRouteEvidenceRequired": true
  }
}
