{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://terraevidence.com/planting-window-source-review.schema.json",
  "title": "TerraEvidence Planting Window Source Review",
  "type": "object",
  "additionalProperties": false,
  "required": ["name", "url", "schema_url", "version", "reviewed_date", "publication_gate", "regions"],
  "properties": {
    "name": {"type": "string"},
    "url": {"type": "string", "format": "uri"},
    "schema_url": {"type": "string", "format": "uri"},
    "version": {"type": "string"},
    "reviewed_date": {"type": "string", "format": "date"},
    "publication_gate": {"type": "string"},
    "regions": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/region"}}
  },
  "$defs": {
    "region": {
      "type": "object",
      "additionalProperties": false,
      "required": ["id", "name", "status", "resolved_context", "open_requirements", "source_reviews"],
      "properties": {
        "id": {"type": "string"},
        "name": {"type": "string"},
        "status": {"enum": ["foundation_verified", "local_resolution_pending", "source_access_pending", "ready_for_crop_records"]},
        "resolved_context": {"type": "array", "items": {"type": "string"}},
        "open_requirements": {"type": "array", "items": {"type": "string"}},
        "source_reviews": {"type": "array", "minItems": 1, "items": {"$ref": "#/$defs/source_review"}}
      }
    },
    "source_review": {
      "type": "object",
      "additionalProperties": false,
      "required": ["source_id", "title", "publisher", "url", "access_status", "geographic_scope", "supports", "does_not_support", "permitted_use", "reviewed_date"],
      "properties": {
        "source_id": {"type": "string"},
        "title": {"type": "string"},
        "publisher": {"type": "string"},
        "url": {"type": "string", "format": "uri"},
        "access_status": {"enum": ["full_text_reviewed", "metadata_only", "not_accessible"]},
        "geographic_scope": {"type": "string"},
        "supports": {"type": "array", "minItems": 1, "items": {"type": "string"}},
        "does_not_support": {"type": "array", "minItems": 1, "items": {"type": "string"}},
        "permitted_use": {"type": "string"},
        "reviewed_date": {"type": "string", "format": "date"},
        "notes": {"type": "string"}
      }
    }
  }
}
