{
  "description": "This file is auto-generated by scripts/prep. Do not edit manually.",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "$schema": { "type": "string" },
    "data": {
      "$schema": "https://json-schema.org/draft/2020-12/schema",
      "type": "object",
      "propertyNames": { "type": "string" },
      "additionalProperties": {
        "type": "object",
        "properties": {
          "text": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^([A-Z0-9]{3}(\\.[0-9]+)?|OT|NT)$"
            }
          },
          "audio": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^([A-Z0-9]{3}(\\.[0-9]+)?|OT|NT)$"
            }
          },
          "timings": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^([A-Z0-9]{3}(\\.[0-9]+)?|OT|NT)$"
            }
          },
          "bookNames": {
            "type": "object",
            "propertyNames": { "type": "string", "pattern": "^[A-Z0-9]{3}$" },
            "additionalProperties": { "type": "string" }
          },
          "customPassages": {
            "type": "object",
            "propertyNames": { "type": "string" },
            "additionalProperties": { "type": "number" },
            "description": "Custom passage recordings and their durations in seconds. Keys are passage IDs (e.g., \"GEN.1.26-GEN.1.27\"), values are durations. These take priority over chapter extraction when resolving audio for a passage."
          }
        },
        "required": ["text", "audio", "timings", "bookNames"],
        "additionalProperties": false
      },
      "description": "Consolidated bible data containing text chapters, audio chapters, timings, and book names for each translation. Entries can be testament IDs ('OT', 'NT'), book IDs (e.g., 'GEN') for complete books, or chapter IDs (e.g., 'GEN.1') for individual chapters."
    }
  },
  "required": ["$schema", "data"]
}
