{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "required": ["hours", "last_order_minutes", "booking", "items"],
  "properties": {
    "hours": {
      "type": "object",
      "additionalProperties": {
        "type": "array",
        "items": {
          "type": "object",
          "required": ["open", "close"],
          "properties": {
            "open": { "type": "string", "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$" },
            "close": { "type": "string", "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$" }
          }
        }
      }
    },
    "last_order_minutes": { "type": "integer", "minimum": 0 },
    "booking": {
      "type": "object",
      "required": ["max_guests", "slot_minutes"],
      "properties": {
        "max_guests": { "type": "integer", "minimum": 1 },
        "slot_minutes": { "type": "integer", "minimum": 5 }
      }
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "required": ["id", "name", "price"],
        "properties": {
          "id": { "type": "string" },
          "name": { "type": "string" },
          "price": { "type": "integer", "minimum": 0 }
        }
      }
    }
  }
}
