{
  "openapi": "3.1.0",
  "info": {
    "title": "Legacy Academy public trial availability",
    "version": "1.0.0",
    "description": "Read-only availability for the free 45-minute GCSE trial. A slot is not reserved by this request. Parents finish the booking at https://www.legacyacademy.co.uk/book-trial. No agent-facing booking submission is offered; do not submit a parent's or child's personal data to an assistant without the parent's permission."
  },
  "servers": [{ "url": "https://www.legacyacademy.co.uk" }],
  "paths": {
    "/api/availability/slots": {
      "get": {
        "operationId": "listFreeTrialSlots",
        "summary": "Read current available time windows",
        "description": "No authentication. Returns start/end ISO 8601 timestamps in UTC for slots in a rolling window beginning four hours from now through the end of the third calendar day (today plus two days) in Europe/London. Query parameters do not change this window. Availability can change before a parent confirms a booking. Response is not cached.",
        "responses": {
          "200": {
            "description": "Open slots (possibly empty). No reservation has been made.",
            "headers": {
              "Cache-Control": {
                "description": "no-store",
                "schema": { "type": "string" }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": ["slots"],
                  "properties": {
                    "slots": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": ["start", "end"],
                        "properties": {
                          "start": { "type": "string", "format": "date-time" },
                          "end": { "type": "string", "format": "date-time" }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}