{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://schemas.receiz.com/v125/credential-presentation.schema.json",
  "title": "Receiz v126 selective credential presentation",
  "type": "object",
  "additionalProperties": false,
  "required": ["schema", "credentialId", "proofObjectId", "domainId", "credentialType", "subjectId", "holderReceizId", "acceptedHead", "claimRoot", "claimSetDigest", "claimSetHead", "selectedKai", "disclosures", "disclosureDigest", "presentationDigest", "authority"],
  "properties": {
    "schema": { "const": "receiz.credential.presentation.v125" },
    "credentialId": { "$ref": "#/$defs/digest" },
    "proofObjectId": { "type": "string", "minLength": 1 },
    "domainId": { "type": "string", "minLength": 1 },
    "credentialType": { "type": "string", "minLength": 1 },
    "subjectId": { "type": "string", "minLength": 1 },
    "holderReceizId": { "type": "string", "minLength": 1 },
    "acceptedHead": { "$ref": "#/$defs/digest" },
    "claimRoot": { "$ref": "#/$defs/digest" },
    "claimSetDigest": { "$ref": "#/$defs/digest" },
    "claimSetHead": { "$ref": "#/$defs/digest" },
    "selectedKai": { "$ref": "#/$defs/kai" },
    "disclosures": {
      "type": "array",
      "minItems": 1,
      "items": { "$ref": "#/$defs/disclosure" }
    },
    "disclosureDigest": { "$ref": "#/$defs/digest" },
    "presentationDigest": { "$ref": "#/$defs/digest" },
    "authority": {
      "const": { "presentationIsProofAuthority": false, "strongerTruth": "sealed-receiz-proof-object" }
    }
  },
  "$defs": {
    "digest": { "type": "string", "pattern": "^[0-9a-f]{64}$" },
    "kai": { "type": "string", "pattern": "^(0|[1-9][0-9]*)$" },
    "disclosure": {
      "type": "object",
      "additionalProperties": false,
      "required": ["name", "disclosure", "value", "valueCommitment", "evidenceIds", "leafDigest", "witness"],
      "properties": {
        "name": { "type": "string", "minLength": 1 },
        "disclosure": { "enum": ["public", "selective"] },
        "value": { "anyOf": [{ "type": "string" }, { "type": "number" }, { "type": "boolean" }] },
        "valueCommitment": { "$ref": "#/$defs/digest" },
        "evidenceIds": { "type": "array", "items": { "type": "string", "minLength": 1 } },
        "leafDigest": { "$ref": "#/$defs/digest" },
        "witness": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": ["side", "digest"],
            "properties": {
              "side": { "enum": ["left", "right"] },
              "digest": { "$ref": "#/$defs/digest" }
            }
          }
        }
      }
    }
  }
}
