{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://usemakoto.dev/schema/v0.3/record-inclusion-proof.schema.json",
  "title": "Makoto v0.3 Record Inclusion Proof",
  "type": "object",
  "required": [
    "version",
    "algorithm",
    "manifestStatementDigest",
    "manifestSubjectName",
    "entryName",
    "entryDigest",
    "recordIndex",
    "recordCount",
    "recordDigest",
    "auditPath"
  ],
  "properties": {
    "version": { "const": "0.3" },
    "algorithm": { "const": "rfc6962-sha256-record-digest-v1" },
    "manifestStatementDigest": { "$ref": "#/$defs/digest" },
    "manifestSubjectName": { "type": "string", "minLength": 1, "maxLength": 4096 },
    "entryName": { "type": "string", "minLength": 1, "maxLength": 1024 },
    "entryDigest": { "$ref": "#/$defs/digest" },
    "recordIndex": { "$ref": "#/$defs/integer" },
    "recordCount": { "$ref": "#/$defs/positiveInteger" },
    "recordDigest": { "$ref": "#/$defs/digest" },
    "byteRange": { "$ref": "#/$defs/range" },
    "auditPath": {
      "type": "array",
      "maxItems": 63,
      "items": { "$ref": "#/$defs/digest" }
    }
  },
  "$defs": {
    "integer": {
      "type": "integer",
      "minimum": 0,
      "maximum": 9223372036854775807
    },
    "positiveInteger": {
      "type": "integer",
      "minimum": 1,
      "maximum": 9223372036854775807
    },
    "digest": {
      "type": "object",
      "required": ["sha256"],
      "properties": {
        "sha256": { "type": "string", "minLength": 64, "maxLength": 64 }
      },
      "additionalProperties": false
    },
    "range": {
      "type": "object",
      "required": ["offset", "length"],
      "properties": {
        "offset": { "$ref": "#/$defs/integer" },
        "length": { "$ref": "#/$defs/integer" }
      },
      "additionalProperties": false
    }
  },
  "additionalProperties": false
}
