{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://ainumbers.co/chaingraph/workbook/input-manifest.schema.json",
  "title": "AINumbers Spreadsheet Input Manifest",
  "description": "Engine-free evidence binding spreadsheet inputs into OCG (WORKBOOK-1-BUILD-SPEC.md §WB-2). Names a CSV source and the ranges pulled from it, each carrying a values_digest. Any tool that can compute a SHA-256 over the RFC 8785 (JCS) canonical JSON encoding of a value or range matrix can produce a conformant manifest -- the AINumbers workbook module is one such producer, never the only one. A manifest's digests MAY be pointed to by a SPEC.md §23 input_attestations entry (pointer resolves into policy_parameters, digest binds the same canonical encoding) -- §23 is cited, not restated, here.",
  "type": "object",
  "required": ["manifest_type", "source", "ranges", "produced_by", "produced_at"],
  "properties": {
    "manifest_type": { "type": "string", "const": "spreadsheet-input-manifest" },
    "source": {
      "type": "object",
      "required": ["filename", "csv_digest"],
      "properties": {
        "filename": { "type": "string", "minLength": 1 },
        "csv_digest": { "type": "string", "pattern": "^[a-f0-9]{64}$" }
      },
      "additionalProperties": false
    },
    "ranges": {
      "type": "array",
      "minItems": 1,
      "items": {
        "type": "object",
        "required": ["ref", "values_digest", "semantics"],
        "properties": {
          "ref": { "type": "string", "pattern": "^[A-Za-z]+[1-9][0-9]*(:[A-Za-z]+[1-9][0-9]*)?$" },
          "values_digest": { "type": "string", "pattern": "^[a-f0-9]{64}$" },
          "semantics": { "type": "string", "minLength": 1 }
        },
        "additionalProperties": false
      }
    },
    "produced_by": { "type": "string", "minLength": 1 },
    "produced_at": { "type": "string", "format": "date-time" }
  },
  "additionalProperties": false
}
