{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "http://schema.mydesignsystem.com/event-location.schema.json",
  "title": "Event Location",
  "description": "Event location component for displaying event dates, location details, and related links.",
  "type": "object",
  "properties": {
    "dates": {
      "title": "Dates",
      "description": "List of dates of the event",
      "type": "array",
      "items": {
        "$schema": "http://json-schema.org/draft-07/schema#",
        "$id": "http://schema.mydesignsystem.com/event-appointment.schema.json",
        "title": "Event Appointment",
        "type": "object",
        "properties": {
          "date": {
            "title": "Date",
            "description": "Date of the appointment",
            "type": "string",
            "format": "date",
            "examples": [
              "18.09.2025"
            ]
          },
          "time": {
            "title": "Time",
            "description": "Time of the appointment",
            "type": "string",
            "examples": [
              "09:00 – 17:00"
            ]
          },
          "label": {
            "title": "CTA Label",
            "description": "Label for the call to action button",
            "type": "string",
            "examples": [
              "Register"
            ]
          },
          "url": {
            "title": "URL",
            "description": "URL for the call to action button",
            "type": "string",
            "format": "uri",
            "default": "#"
          },
          "newTab": {
            "title": "Open in New Tab",
            "description": "Whether the link should open in a new tab",
            "type": "boolean",
            "default": true
          },
          "ariaLabel": {
            "title": "Aria Label",
            "description": "Aria label for the link",
            "type": "string",
            "default": "Event Appointment"
          }
        },
        "additionalProperties": false
      }
    },
    "locationName": {
      "title": "Location Name",
      "description": "Name of the event location",
      "type": "string",
      "examples": [
        "Berlin Congress Center"
      ]
    },
    "displayMode": {
      "title": "Display Mode",
      "description": "Spacious is recommended for 1-2 appointments, Compact for more than 2.",
      "type": "string",
      "enum": [
        "spacious",
        "compact"
      ],
      "default": "spacious"
    },
    "address": {
      "title": "Address",
      "description": "Address of the appointment",
      "type": "string",
      "examples": [
        "Berlin Congress Center<br />Alexanderplatz 1<br />10178 Berlin"
      ]
    },
    "links": {
      "title": "Links",
      "description": "Links related to the event location",
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "format": "uri"
          },
          "label": {
            "type": "string"
          },
          "newTab": {
            "type": "boolean",
            "default": true,
            "description": "Open link in a new tab"
          }
        },
        "required": [
          "url",
          "label"
        ],
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}