{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "schemas/writeback_binding_conflict.schema.json",
  "title": "anu_v3.writeback_binding_conflict.v1",
  "description": "task-2553+49 AUTHORITATIVE §5.E — write-back role/fallback/owner-key binding conflict guard result. self-chain write-back (owner==executor key / not an ANU key / executor self-session) -> WRITEBACK_SELF_CHAIN_NOT_COMPLETED (FAIL, completed 불인정). Same idempotency key but different role/fallback binding -> WRITEBACK_BINDING_CONFLICT (FAIL, recorded — silent skip 금지). Identical key AND identical binding AND owner=independent ANU -> WRITEBACK_IDEMPOTENT_SKIP (PASS). No match -> WRITEBACK_NO_CONFLICT (PASS).",
  "type": "object",
  "required": [
    "schema",
    "verdict",
    "classification",
    "task_id",
    "conflict",
    "completed_acknowledged",
    "conflicting_fields",
    "reasons"
  ],
  "properties": {
    "schema": { "const": "anu_v3.writeback_binding_conflict.v1" },
    "verdict": { "enum": ["PASS", "FAIL"] },
    "classification": {
      "enum": [
        "WRITEBACK_NO_CONFLICT",
        "WRITEBACK_IDEMPOTENT_SKIP",
        "WRITEBACK_BINDING_CONFLICT",
        "WRITEBACK_SELF_CHAIN_NOT_COMPLETED"
      ]
    },
    "task_id": { "type": "string" },
    "conflict": { "type": "boolean" },
    "completed_acknowledged": { "type": "boolean" },
    "conflicting_fields": { "type": "array", "items": { "type": "string" } },
    "reasons": { "type": "array", "items": { "type": "string" } }
  },
  "allOf": [
    {
      "if": {
        "properties": {
          "classification": {
            "enum": ["WRITEBACK_BINDING_CONFLICT", "WRITEBACK_SELF_CHAIN_NOT_COMPLETED"]
          }
        }
      },
      "then": {
        "properties": {
          "verdict": { "const": "FAIL" },
          "conflict": { "const": true },
          "completed_acknowledged": { "const": false }
        }
      }
    },
    {
      "if": {
        "properties": {
          "classification": {
            "enum": ["WRITEBACK_NO_CONFLICT", "WRITEBACK_IDEMPOTENT_SKIP"]
          }
        }
      },
      "then": {
        "properties": {
          "verdict": { "const": "PASS" },
          "conflict": { "const": false },
          "completed_acknowledged": { "const": true }
        }
      }
    }
  ],
  "additionalProperties": true
}
