{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://genesiscode.dev/schemas/evidence-statement-v0.1.json",
  "title": "GenesisCode in-toto Evidence Statement Profile v0.1",
  "type": "object",
  "additionalProperties": false,
  "required": ["_type", "subject", "predicateType", "predicate"],
  "properties": {
    "_type": {"const": "https://in-toto.io/Statement/v1"},
    "subject": {
      "type": "array",
      "minItems": 1,
      "items": {"$ref": "#/$defs/subject"}
    },
    "predicateType": {
      "const": "https://genesiscode.dev/attestations/evidence/v0.1"
    },
    "predicate": {
      "$ref": "https://genesiscode.dev/schemas/evidence-predicate-v0.1.json"
    }
  },
  "$defs": {
    "subject": {
      "type": "object",
      "additionalProperties": false,
      "required": ["name", "digest"],
      "properties": {
        "name": {"type": "string", "minLength": 1},
        "digest": {
          "type": "object",
          "additionalProperties": false,
          "required": ["sha256"],
          "properties": {
            "sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"}
          }
        }
      }
    }
  }
}
