{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "schemas/batch_settle_result.schema.json",
  "title": "batch_settle_result.v1",
  "description": "task-2553+53 §3.4/§3.5 — batch settle evaluation over the durable-success write-back records. all-settled iff EVERY track in the batch has a durable-success (COMPLETED) write-back with an independent-ANU AUTHORITATIVE_PASS/PASS/ACCEPTED verdict. fallback/dead-man pending is NON-blocking (§3.6); fixed-time/dead-man is NEVER a progress trigger (§3.7).",
  "type": "object",
  "required": [
    "schema",
    "batch_id",
    "evaluated_at_basis",
    "tracks_expected",
    "tracks_settled",
    "all_settled",
    "all_authoritative_pass",
    "decision",
    "track_states"
  ],
  "properties": {
    "schema": {"const": "batch_settle_result.v1"},
    "batch_id": {"type": "string", "minLength": 1},
    "evaluated_at_basis": {
      "const": "normal_callback_durable_success_event",
      "description": "§3.7 — NOT fixed-time, NOT dead-man, NOT fallback."
    },
    "tracks_expected": {"type": "array", "items": {"type": "string"}},
    "tracks_settled": {"type": "array", "items": {"type": "string"}},
    "all_settled": {"type": "boolean"},
    "all_authoritative_pass": {"type": "boolean"},
    "decision": {
      "type": "string",
      "enum": ["ALL_SETTLED_CONSOLIDATE", "RECORD_AND_DEFER"]
    },
    "this_collector_is_last_settle_track": {"type": "boolean"},
    "fallback_pending_non_blocking": {"type": "boolean"},
    "track_states": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["track_id", "task_id", "terminal_status", "authoritative_verdict", "durable_success_present"],
        "properties": {
          "track_id": {"type": "string"},
          "task_id": {"type": "string"},
          "terminal_status": {"type": "string"},
          "authoritative_verdict": {"type": ["string", "null"]},
          "durable_success_present": {"type": "boolean"},
          "writeback_classification": {"type": "string"}
        },
        "additionalProperties": true
      }
    },
    "consolidated_summary_candidate_path": {"type": ["string", "null"]},
    "reasons": {"type": "array", "items": {"type": "string"}}
  },
  "additionalProperties": true
}
