{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://xcim.invalid/ietf/as01/schemas/witness.schema.json",
  "title": "AS01-F01 witness",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "proposal_version",
    "object_type",
    "issuer_id",
    "log_id",
    "checkpoint_commitment",
    "locator",
    "present",
    "value",
    "siblings"
  ],
  "properties": {
    "proposal_version": {
      "const": "as-01"
    },
    "object_type": {
      "const": "authority_state_witness"
    },
    "issuer_id": {
      "$ref": "https://xcim.invalid/ietf/as01/schemas/common.schema.json#/$defs/id"
    },
    "log_id": {
      "$ref": "https://xcim.invalid/ietf/as01/schemas/common.schema.json#/$defs/id"
    },
    "checkpoint_commitment": {
      "$ref": "https://xcim.invalid/ietf/as01/schemas/common.schema.json#/$defs/hash"
    },
    "locator": {
      "$ref": "https://xcim.invalid/ietf/as01/schemas/locator.schema.json"
    },
    "present": {
      "type": "boolean"
    },
    "value": {
      "oneOf": [
        {
          "$ref": "https://xcim.invalid/ietf/as01/schemas/state-value.schema.json"
        },
        {
          "type": "null"
        }
      ]
    },
    "siblings": {
      "type": "array",
      "items": {
        "$ref": "https://xcim.invalid/ietf/as01/schemas/common.schema.json#/$defs/hash"
      },
      "minItems": 256,
      "maxItems": 256
    }
  },
  "allOf": [
    {
      "if": {
        "properties": {
          "present": {
            "const": true
          }
        }
      },
      "then": {
        "properties": {
          "value": {
            "$ref": "https://xcim.invalid/ietf/as01/schemas/state-value.schema.json"
          }
        }
      },
      "else": {
        "properties": {
          "value": {
            "type": "null"
          }
        }
      }
    }
  ]
}
