{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "schemaVersion": {
      "type": "string",
      "const": "gno-evidence-fixtures-v1"
    },
    "documents": {
      "minItems": 1,
      "type": "array",
      "items": {
        "$ref": "#/definitions/__schema0"
      }
    },
    "spans": {
      "minItems": 1,
      "type": "array",
      "items": {
        "$ref": "#/definitions/__schema3"
      }
    },
    "cases": {
      "minItems": 1,
      "type": "array",
      "items": {
        "$ref": "#/definitions/__schema4"
      }
    }
  },
  "required": ["schemaVersion", "documents", "spans", "cases"],
  "additionalProperties": false,
  "definitions": {
    "__schema0": {
      "type": "object",
      "properties": {
        "uri": {
          "$ref": "#/definitions/__schema1"
        },
        "title": {
          "$ref": "#/definitions/__schema1"
        },
        "content": {
          "$ref": "#/definitions/__schema1"
        },
        "sourceHash": {
          "$ref": "#/definitions/__schema2"
        }
      },
      "required": ["uri", "title", "content", "sourceHash"],
      "additionalProperties": false
    },
    "__schema1": {
      "type": "string",
      "minLength": 1
    },
    "__schema2": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "__schema3": {
      "type": "object",
      "properties": {
        "id": {
          "$ref": "#/definitions/__schema1"
        },
        "uri": {
          "$ref": "#/definitions/__schema1"
        },
        "sourceHash": {
          "$ref": "#/definitions/__schema2"
        },
        "startLine": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "endLine": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "spanHash": {
          "$ref": "#/definitions/__schema2"
        }
      },
      "required": [
        "id",
        "uri",
        "sourceHash",
        "startLine",
        "endLine",
        "spanHash"
      ],
      "additionalProperties": false
    },
    "__schema4": {
      "type": "object",
      "properties": {
        "caseId": {
          "$ref": "#/definitions/__schema1"
        },
        "family": {
          "$ref": "#/definitions/__schema1"
        },
        "query": {
          "$ref": "#/definitions/__schema1"
        },
        "intent": {
          "anyOf": [
            {
              "$ref": "#/definitions/__schema1"
            },
            {
              "type": "null"
            }
          ]
        },
        "collection": {
          "$ref": "#/definitions/__schema1"
        },
        "tokenBudget": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "byteBudget": {
          "type": "integer",
          "exclusiveMinimum": 0,
          "maximum": 9007199254740991
        },
        "requiredSets": {
          "type": "array",
          "items": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/definitions/__schema1"
            }
          }
        },
        "expectAbstention": {
          "type": "boolean"
        },
        "expectedValues": {
          "type": "array",
          "items": {
            "$ref": "#/definitions/__schema1"
          }
        },
        "mustCover": {
          "type": "boolean"
        },
        "split": {
          "type": "string",
          "enum": ["development", "held-out"]
        }
      },
      "required": [
        "caseId",
        "family",
        "query",
        "intent",
        "collection",
        "tokenBudget",
        "byteBudget",
        "requiredSets",
        "expectAbstention",
        "expectedValues",
        "mustCover",
        "split"
      ],
      "additionalProperties": false
    }
  }
}
