{
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "$id": "https://artscal.org/events.schema.json",
 "title": "ArtsCal.org public events feed",
 "type": "object",
 "required": [
  "schema",
  "version",
  "generated",
  "source",
  "license",
  "count",
  "events"
 ],
 "properties": {
  "schema": {
   "type": "string"
  },
  "version": {
   "type": "integer",
   "const": 1
  },
  "generated": {
   "type": "string"
  },
  "source": {
   "type": "string"
  },
  "license": {
   "type": "string"
  },
  "count": {
   "type": "integer"
  },
  "events": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "id",
     "uid",
     "title",
     "start",
     "end",
     "all_day",
     "approx_time",
     "status",
     "venue",
     "genres",
     "price_text",
     "free",
     "official_url",
     "ticket_url",
     "page",
     "updated"
    ],
    "properties": {
     "id": {
      "type": "string"
     },
     "uid": {
      "type": "string"
     },
     "title": {
      "type": "string"
     },
     "start": {
      "type": "string",
      "description": "ISO 8601 with UTC offset, or a date when all_day"
     },
     "end": {
      "type": [
       "string",
       "null"
      ]
     },
     "all_day": {
      "type": "boolean"
     },
     "approx_time": {
      "type": "boolean"
     },
     "status": {
      "type": "string",
      "enum": [
       "scheduled",
       "cancelled",
       "possibly_cancelled"
      ]
     },
     "venue": {
      "type": "object",
      "required": [
       "name",
       "city",
       "address",
       "lat",
       "lon",
       "page"
      ],
      "properties": {
       "name": {
        "type": "string"
       },
       "city": {
        "type": "string"
       },
       "address": {
        "type": "string"
       },
       "lat": {
        "type": [
         "number",
         "null"
        ]
       },
       "lon": {
        "type": [
         "number",
         "null"
        ]
       },
       "page": {
        "type": "string"
       }
      }
     },
     "genres": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "price_text": {
      "type": "string"
     },
     "free": {
      "type": "boolean"
     },
     "official_url": {
      "type": "string"
     },
     "ticket_url": {
      "type": "string"
     },
     "page": {
      "type": "string"
     },
     "updated": {
      "type": "string"
     },
     "description": {
      "type": "string"
     }
    }
   }
  }
 }
}
