{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://extol.work/attestation/statement/v1/hours-disputed/schema.json",
  "title": "Hours disputed",
  "description": "The volunteer named as subject of an hours-verified attestation contests the claim. Signed by the volunteer, references the disputed attestation.",
  "type": "object",
  "required": ["disputed_attestation_reference", "dispute_reason"],
  "properties": {
    "disputed_attestation_reference": { "type": "string", "pattern": "^[0-9a-f]{64}$", "description": "SHA-256 hex of the disputed hours-verified attestation's canonical bytes" },
    "dispute_reason": {
      "type": "string",
      "enum": ["hours_incorrect", "never_volunteered", "wrong_period", "wrong_activity", "other"]
    },
    "dispute_text": { "type": "string", "description": "Optional free-text explanation from the volunteer" },
    "proposed_correction": {
      "type": "object",
      "description": "Optional: volunteer's own account if the dispute is a partial correction",
      "properties": {
        "hours": { "type": "number", "minimum": 0 },
        "reporting_period": {
          "type": "object",
          "properties": {
            "start": { "type": "string", "format": "date" },
            "end": { "type": "string", "format": "date" }
          }
        },
        "activity_description": { "type": "string" }
      }
    }
  }
}
