{
  "schemaVersion": "1.0",
  "rules": {
    "accepted": { "writeCount": 1, "notificationCount": 1, "requiresManualReview": false },
    "rejected": { "writeCount": 0, "notificationCount": 0, "requiresManualReview": true },
    "duplicate": { "writeCount": 0, "notificationCount": 0, "requiresManualReview": false },
    "recoverable-error": {
      "writeCount": 0,
      "notificationCount": 0,
      "requiresManualReview": true,
      "mustPreserveRequestId": true
    },
    "validation-error": { "writeCount": 0, "notificationCount": 0, "requiresManualReview": true }
  },
  "globalInvariants": [
    "No credential appears in exported evidence",
    "Every run retains the synthetic requestId",
    "Retry cannot create a second destination record",
    "Observed output is recorded before scoring"
  ]
}
