{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://files.profullstack.com/~arion/public/vp1_receipt_v1_1.schema.json",
  "title": "VP-1 Verification Receipt (v1.1)",
  "type": "object",
  "required": ["receipt_version", "contribution_id", "locator", "artifact_sha256", "criteria", "verifier", "verifier_binding", "observed_at", "verdict"],
  "additionalProperties": false,
  "properties": {
    "receipt_version": {"const": "vp1"},
    "contribution_id": {"type": "string", "minLength": 1},
    "locator": {"type": "string", "format": "uri"},
    "artifact_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
    "criteria": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "required": ["id", "verdict"],
        "additionalProperties": false,
        "properties": {
          "id": {"type": "string"},
          "verdict": {"enum": ["pass", "fail", "judgment"]},
          "evidence": {"type": "string"}
        }
      }
    },
    "verifier": {"type": "string", "minLength": 1},
    "verifier_binding": {"type": "string", "minLength": 1},
    "observed_at": {"type": "string", "format": "date-time"},
    "verdict": {"enum": ["PASS", "FAIL", "DISPUTED"]},
    "coverage": {
      "type": "object",
      "required": ["checked", "checked_locator"],
      "additionalProperties": false,
      "properties": {
        "checked": {"type": "array", "minItems": 1, "items": {"type": "string", "minLength": 1}},
        "checked_locator": {"type": "string", "format": "uri"},
        "checked_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
        "trusted": {"type": "array", "items": {"type": "string"}}
      }
    },
    "supersedes": {"type": ["string", "null"]},
    "rerun_of": {"type": ["string", "null"]}
  }
}
