{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "additionalProperties": false,
  "required": [
    "schemaVersion",
    "recordType",
    "candidateId",
    "sourceCommit",
    "gitTree",
    "scopeSha256",
    "chain",
    "inputType",
    "methodologyId",
    "createdAtUtc",
    "inputContentBase64",
    "inputContentSha256",
    "itemCount",
    "containsRawPersonalData",
    "containsSurveillanceInputs"
  ],
  "properties": {
    "schemaVersion": {
      "const": "1.0.0"
    },
    "recordType": {
      "const": "privacy-unlinkability-methodology-input"
    },
    "candidateId": {
      "type": "string",
      "pattern": "^sha256:[0-9a-f]{64}$"
    },
    "sourceCommit": {
      "type": "string",
      "pattern": "^[0-9a-f]{40}$"
    },
    "gitTree": {
      "type": "string",
      "pattern": "^[0-9a-f]{40}$"
    },
    "scopeSha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "chain": {
      "const": "base"
    },
    "inputType": {
      "enum": [
        "random-seed-opening",
        "corpus-universe",
        "deterministic-selection",
        "test-command"
      ]
    },
    "methodologyId": {
      "const": "vaultfire-chain-specific-unlinkability-v1"
    },
    "createdAtUtc": {
      "type": "string",
      "format": "date-time"
    },
    "inputContentBase64": {
      "type": "string",
      "minLength": 4,
      "maxLength": 10485760
    },
    "inputContentSha256": {
      "type": "string",
      "pattern": "^[0-9a-f]{64}$"
    },
    "itemCount": {
      "type": "integer",
      "minimum": 1
    },
    "containsRawPersonalData": {
      "const": false
    },
    "containsSurveillanceInputs": {
      "const": false
    }
  }
}
