{
    "openapi": "3.1.0",
    "info": {
        "title": "PlanDocket REST API",
        "version": "1.0.0",
        "description": "REST API of your PlanDocket account. Authenticate with an API key (Settings, API) as bearer token or X-API-Key header. Every operation lists the scope it needs in x-required-scopes."
    },
    "servers": [
        {
            "url": "https://your-tenant.plandocket.com",
            "description": "Your account address (replace with your own subdomain)"
        }
    ],
    "security": [
        {
            "bearerAuth": []
        },
        {
            "apiKeyHeader": []
        }
    ],
    "tags": [
        {
            "name": "events",
            "description": "Events"
        },
        {
            "name": "contacts",
            "description": "Contacts"
        },
        {
            "name": "participants",
            "description": "Participants"
        },
        {
            "name": "applications",
            "description": "Applications"
        },
        {
            "name": "categories",
            "description": "Categories"
        },
        {
            "name": "invoices",
            "description": "Invoices"
        },
        {
            "name": "credit-notes",
            "description": "Credit Notes"
        },
        {
            "name": "refunds",
            "description": "Refunds"
        },
        {
            "name": "payment-reminders",
            "description": "Payment reminders"
        },
        {
            "name": "payments",
            "description": "Payments"
        },
        {
            "name": "booths",
            "description": "Booths"
        },
        {
            "name": "booth-reservations",
            "description": "Booth Reservations"
        },
        {
            "name": "booth-types",
            "description": "Booth Types"
        },
        {
            "name": "check-ins",
            "description": "Check-Ins"
        },
        {
            "name": "tasks",
            "description": "Tasks"
        },
        {
            "name": "documents",
            "description": "Documents"
        },
        {
            "name": "submissions",
            "description": "Submissions"
        },
        {
            "name": "service-orders",
            "description": "Service Orders"
        },
        {
            "name": "plans",
            "description": "Floor Plans"
        },
        {
            "name": "custom-fields",
            "description": "Custom Fields"
        },
        {
            "name": "services",
            "description": "Services"
        },
        {
            "name": "service-categories",
            "description": "Service Categories"
        },
        {
            "name": "event-services",
            "description": "Event Services"
        },
        {
            "name": "submission-types",
            "description": "Submission Types"
        },
        {
            "name": "list-templates",
            "description": "List Templates"
        },
        {
            "name": "list-entries",
            "description": "List Entries"
        },
        {
            "name": "newsletter",
            "description": "Newsletter"
        },
        {
            "name": "notes",
            "description": "Notes"
        },
        {
            "name": "schedules",
            "description": "Schedules"
        },
        {
            "name": "webhooks",
            "description": "Webhooks"
        },
        {
            "name": "reports",
            "description": "Reports"
        },
        {
            "name": "audit-log",
            "description": "Audit Log"
        },
        {
            "name": "calendar",
            "description": "Calendar"
        },
        {
            "name": "bulk-import",
            "description": "Bulk Import"
        }
    ],
    "paths": {
        "/api/v1/events": {
            "get": {
                "tags": [
                    "events"
                ],
                "summary": "List all events",
                "operationId": "getEvents",
                "x-required-scopes": [
                    "events:read"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "required": false,
                        "description": "Search term to filter results",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "visible",
                        "in": "query",
                        "required": false,
                        "description": "Filter by visibility (0 or 1)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "upcoming",
                        "in": "query",
                        "required": false,
                        "description": "Only show upcoming events (1)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "description": "Sort field (title, event_key, date_from, date_to, city)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "query",
                        "required": false,
                        "description": "Sort direction (ASC or DESC, default: DESC)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "required": false,
                        "description": "Include related data (opening_hours, participant_count)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Events"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "event_key": "string",
                                            "title": "string",
                                            "description": "string",
                                            "country": "string",
                                            "state": "string",
                                            "city": "string",
                                            "date_from": "2026-01-15T10:00:00+01:00",
                                            "date_to": "2026-01-15T10:00:00+01:00",
                                            "application_deadline": "2026-01-15T10:00:00+01:00",
                                            "is_visible": true,
                                            "image": {}
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "post": {
                "tags": [
                    "events"
                ],
                "summary": "Create a new event",
                "operationId": "postEvents",
                "x-required-scopes": [
                    "events:write"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/EventsCreateInput"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created; data.id is the ID of the new record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": true,
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/events/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "events"
                ],
                "summary": "Retrieve a single event",
                "operationId": "getEventsById",
                "x-required-scopes": [
                    "events:read"
                ],
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Events"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "event_key": "string",
                                        "title": "string",
                                        "description": "string",
                                        "country": "string",
                                        "state": "string",
                                        "city": "string",
                                        "date_from": "2026-01-15T10:00:00+01:00",
                                        "date_to": "2026-01-15T10:00:00+01:00",
                                        "application_deadline": "2026-01-15T10:00:00+01:00",
                                        "is_visible": true,
                                        "image": {}
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "put": {
                "tags": [
                    "events"
                ],
                "summary": "Update an event",
                "operationId": "putEventsById",
                "x-required-scopes": [
                    "events:write"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/EventsInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Events"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "event_key": "string",
                                        "title": "string",
                                        "description": "string",
                                        "country": "string",
                                        "state": "string",
                                        "city": "string",
                                        "date_from": "2026-01-15T10:00:00+01:00",
                                        "date_to": "2026-01-15T10:00:00+01:00",
                                        "application_deadline": "2026-01-15T10:00:00+01:00",
                                        "is_visible": true,
                                        "image": {}
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "patch": {
                "tags": [
                    "events"
                ],
                "summary": "Update an event",
                "operationId": "patchEventsById",
                "x-required-scopes": [
                    "events:write"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/EventsInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Events"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "event_key": "string",
                                        "title": "string",
                                        "description": "string",
                                        "country": "string",
                                        "state": "string",
                                        "city": "string",
                                        "date_from": "2026-01-15T10:00:00+01:00",
                                        "date_to": "2026-01-15T10:00:00+01:00",
                                        "application_deadline": "2026-01-15T10:00:00+01:00",
                                        "is_visible": true,
                                        "image": {}
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "delete": {
                "tags": [
                    "events"
                ],
                "summary": "Move an event to the trash (restorable by an admin)",
                "operationId": "deleteEventsById",
                "x-required-scopes": [
                    "events:write"
                ],
                "responses": {
                    "204": {
                        "description": "Deleted (no content)"
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/contacts": {
            "get": {
                "tags": [
                    "contacts"
                ],
                "summary": "List all contacts",
                "operationId": "getContacts",
                "x-required-scopes": [
                    "contacts:read"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "required": false,
                        "description": "Search term to filter results",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "category_key",
                        "in": "query",
                        "required": false,
                        "description": "Filter by category key",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "event_key",
                        "in": "query",
                        "required": false,
                        "description": "Filter by event key",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "description": "Sort field (company_name, last_name, first_name, email, customer_number, city, created_at)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "query",
                        "required": false,
                        "description": "Sort direction (ASC or DESC, default: DESC)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "required": false,
                        "description": "Include related data (categories, events)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Contacts"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "customer_number": "string",
                                            "company_name": "string",
                                            "first_name": "string",
                                            "last_name": "string",
                                            "address": "string",
                                            "postal_code": "string",
                                            "city": "string",
                                            "country": "string",
                                            "state": "string",
                                            "phone": "string",
                                            "fax": "string",
                                            "mobile": "string",
                                            "email": "string",
                                            "website": "string",
                                            "notes": "string",
                                            "tax_id": "string",
                                            "rating": 1,
                                            "account_access_enabled": true,
                                            "has_account": true,
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "post": {
                "tags": [
                    "contacts"
                ],
                "summary": "Create a new contact",
                "operationId": "postContacts",
                "x-required-scopes": [
                    "contacts:write"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ContactsCreateInput"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created; data.id is the ID of the new record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": true,
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/contacts/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "contacts"
                ],
                "summary": "Retrieve a single contact",
                "operationId": "getContactsById",
                "x-required-scopes": [
                    "contacts:read"
                ],
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Contacts"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "customer_number": "string",
                                        "company_name": "string",
                                        "first_name": "string",
                                        "last_name": "string",
                                        "address": "string",
                                        "postal_code": "string",
                                        "city": "string",
                                        "country": "string",
                                        "state": "string",
                                        "phone": "string",
                                        "fax": "string",
                                        "mobile": "string",
                                        "email": "string",
                                        "website": "string",
                                        "notes": "string",
                                        "tax_id": "string",
                                        "rating": 1,
                                        "account_access_enabled": true,
                                        "has_account": true,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "put": {
                "tags": [
                    "contacts"
                ],
                "summary": "Update a contact",
                "operationId": "putContactsById",
                "x-required-scopes": [
                    "contacts:write"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ContactsInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Contacts"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "customer_number": "string",
                                        "company_name": "string",
                                        "first_name": "string",
                                        "last_name": "string",
                                        "address": "string",
                                        "postal_code": "string",
                                        "city": "string",
                                        "country": "string",
                                        "state": "string",
                                        "phone": "string",
                                        "fax": "string",
                                        "mobile": "string",
                                        "email": "string",
                                        "website": "string",
                                        "notes": "string",
                                        "tax_id": "string",
                                        "rating": 1,
                                        "account_access_enabled": true,
                                        "has_account": true,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "patch": {
                "tags": [
                    "contacts"
                ],
                "summary": "Update a contact",
                "operationId": "patchContactsById",
                "x-required-scopes": [
                    "contacts:write"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ContactsInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Contacts"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "customer_number": "string",
                                        "company_name": "string",
                                        "first_name": "string",
                                        "last_name": "string",
                                        "address": "string",
                                        "postal_code": "string",
                                        "city": "string",
                                        "country": "string",
                                        "state": "string",
                                        "phone": "string",
                                        "fax": "string",
                                        "mobile": "string",
                                        "email": "string",
                                        "website": "string",
                                        "notes": "string",
                                        "tax_id": "string",
                                        "rating": 1,
                                        "account_access_enabled": true,
                                        "has_account": true,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "delete": {
                "tags": [
                    "contacts"
                ],
                "summary": "Move a contact to the trash (restorable by an admin)",
                "operationId": "deleteContactsById",
                "x-required-scopes": [
                    "contacts:write"
                ],
                "responses": {
                    "204": {
                        "description": "Deleted (no content)"
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/participants": {
            "get": {
                "tags": [
                    "participants"
                ],
                "summary": "List all participants",
                "operationId": "getParticipants",
                "x-required-scopes": [
                    "participants:read"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "event_key",
                        "in": "query",
                        "required": false,
                        "description": "Filter by event key",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "customer_number",
                        "in": "query",
                        "required": false,
                        "description": "Filter by customer number",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "confirmed",
                        "in": "query",
                        "required": false,
                        "description": "Filter by confirmation status (0 or 1)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "required": false,
                        "description": "Include related data (contact, event, category)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Participants"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "event_id": 1,
                                            "contact_id": 1,
                                            "is_confirmed": true,
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "post": {
                "tags": [
                    "participants"
                ],
                "summary": "Add a participant",
                "operationId": "postParticipants",
                "x-required-scopes": [
                    "participants:write"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ParticipantsCreateInput"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created; data.id is the ID of the new record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": true,
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/participants/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "participants"
                ],
                "summary": "Retrieve a single participant",
                "operationId": "getParticipantsById",
                "x-required-scopes": [
                    "participants:read"
                ],
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Participants"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "event_id": 1,
                                        "contact_id": 1,
                                        "is_confirmed": true,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "put": {
                "tags": [
                    "participants"
                ],
                "summary": "Update a participation",
                "operationId": "putParticipantsById",
                "x-required-scopes": [
                    "participants:write"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ParticipantsInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Participants"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "event_id": 1,
                                        "contact_id": 1,
                                        "is_confirmed": true,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "patch": {
                "tags": [
                    "participants"
                ],
                "summary": "Update a participation",
                "operationId": "patchParticipantsById",
                "x-required-scopes": [
                    "participants:write"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ParticipantsInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Participants"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "event_id": 1,
                                        "contact_id": 1,
                                        "is_confirmed": true,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "delete": {
                "tags": [
                    "participants"
                ],
                "summary": "Move a participation to the trash (restorable by an admin)",
                "operationId": "deleteParticipantsById",
                "x-required-scopes": [
                    "participants:write"
                ],
                "responses": {
                    "204": {
                        "description": "Deleted (no content)"
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/participants/{id}/confirm": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "post": {
                "tags": [
                    "participants"
                ],
                "summary": "Confirm the participation (like the confirm button in the admin). Optional {\"notify\": true}: the exhibitor receives the \"participation confirmed\" e-mail in their language. Already confirmed = no change, no second webhook",
                "operationId": "postParticipantsByIdConfirm",
                "x-required-scopes": [
                    "participants:write"
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "additionalProperties": true
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Result of the action",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "description": "Result of the action"
                                        }
                                    },
                                    "additionalProperties": true
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/participants/{id}/unconfirm": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "post": {
                "tags": [
                    "participants"
                ],
                "summary": "Withdraw the confirmation of the participation",
                "operationId": "postParticipantsByIdUnconfirm",
                "x-required-scopes": [
                    "participants:write"
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "additionalProperties": true
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Result of the action",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "description": "Result of the action"
                                        }
                                    },
                                    "additionalProperties": true
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/applications": {
            "get": {
                "tags": [
                    "applications"
                ],
                "summary": "List all applications",
                "operationId": "getApplications",
                "description": "Approving also creates a contact and therefore additionally requires the \"contacts:write\" scope.",
                "x-required-scopes": [
                    "applications:read"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "required": false,
                        "description": "Search term to filter results",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "category_key",
                        "in": "query",
                        "required": false,
                        "description": "Filter by category key",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "event_key",
                        "in": "query",
                        "required": false,
                        "description": "Filter by event key",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "description": "Sort field (company_name, last_name, email, city, rating, created_at)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "query",
                        "required": false,
                        "description": "Sort direction (ASC or DESC, default: DESC)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "required": false,
                        "description": "Include related data (events, categories)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Applications"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "company_name": "string",
                                            "first_name": "string",
                                            "last_name": "string",
                                            "address": "string",
                                            "postal_code": "string",
                                            "city": "string",
                                            "country": "string",
                                            "state": "string",
                                            "phone": "string",
                                            "fax": "string",
                                            "mobile": "string",
                                            "email": "string",
                                            "website": "string",
                                            "notes": "string",
                                            "tax_id": "string",
                                            "rating": 1,
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/applications/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "applications"
                ],
                "summary": "Retrieve a single application",
                "operationId": "getApplicationsById",
                "description": "Approving also creates a contact and therefore additionally requires the \"contacts:write\" scope.",
                "x-required-scopes": [
                    "applications:read"
                ],
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Applications"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "company_name": "string",
                                        "first_name": "string",
                                        "last_name": "string",
                                        "address": "string",
                                        "postal_code": "string",
                                        "city": "string",
                                        "country": "string",
                                        "state": "string",
                                        "phone": "string",
                                        "fax": "string",
                                        "mobile": "string",
                                        "email": "string",
                                        "website": "string",
                                        "notes": "string",
                                        "tax_id": "string",
                                        "rating": 1,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "put": {
                "tags": [
                    "applications"
                ],
                "summary": "Update an application",
                "operationId": "putApplicationsById",
                "description": "Approving also creates a contact and therefore additionally requires the \"contacts:write\" scope.",
                "x-required-scopes": [
                    "applications:write"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ApplicationsInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Applications"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "company_name": "string",
                                        "first_name": "string",
                                        "last_name": "string",
                                        "address": "string",
                                        "postal_code": "string",
                                        "city": "string",
                                        "country": "string",
                                        "state": "string",
                                        "phone": "string",
                                        "fax": "string",
                                        "mobile": "string",
                                        "email": "string",
                                        "website": "string",
                                        "notes": "string",
                                        "tax_id": "string",
                                        "rating": 1,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "patch": {
                "tags": [
                    "applications"
                ],
                "summary": "Update an application",
                "operationId": "patchApplicationsById",
                "description": "Approving also creates a contact and therefore additionally requires the \"contacts:write\" scope.",
                "x-required-scopes": [
                    "applications:write"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ApplicationsInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Applications"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "company_name": "string",
                                        "first_name": "string",
                                        "last_name": "string",
                                        "address": "string",
                                        "postal_code": "string",
                                        "city": "string",
                                        "country": "string",
                                        "state": "string",
                                        "phone": "string",
                                        "fax": "string",
                                        "mobile": "string",
                                        "email": "string",
                                        "website": "string",
                                        "notes": "string",
                                        "tax_id": "string",
                                        "rating": 1,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "delete": {
                "tags": [
                    "applications"
                ],
                "summary": "Move an application to the trash (restorable by an admin)",
                "operationId": "deleteApplicationsById",
                "description": "Approving also creates a contact and therefore additionally requires the \"contacts:write\" scope.",
                "x-required-scopes": [
                    "applications:write"
                ],
                "responses": {
                    "204": {
                        "description": "Deleted (no content)"
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/applications/{id}/approve": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "post": {
                "tags": [
                    "applications"
                ],
                "summary": "Approve an application: creates the contact with portal access, moves events, categories, notes, custom fields and files to it and fires the application.approved webhook. The contact gets no password: the applicant receives a portal invitation (a set-password link valid for 7 days, in the applicant's language). Optional body {\"send_invitation\": false} skips the invitation (it can be sent later from the admin contact page). Like in the admin area, the applicant is admitted as participant of the events applied for: \"event_ids\" limits this to some of them ([] admits none), \"confirm\" (default: the tenant setting auto_confirm_on_admit, normally false) confirms the participation right away and \"notify\" (default true) sends the participation e-mail; admitting needs the \"participants:write\" scope. Returns contact_id, username, invitation_sent, invitation_status, admitted_events, not_admitted_events (e.g. event full, with code and error) and partial_success. 409 if a contact with the email already exists or the application was already decided, 422 without a valid email, 403 when the plan's contact limit is reached",
                "operationId": "postApplicationsByIdApprove",
                "description": "Approving also creates a contact and therefore additionally requires the \"contacts:write\" scope.",
                "x-required-scopes": [
                    "applications:write"
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "additionalProperties": true
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Result of the action",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "description": "Result of the action"
                                        }
                                    },
                                    "additionalProperties": true
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/applications/{id}/reject": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "post": {
                "tags": [
                    "applications"
                ],
                "summary": "Reject an application: removes it and its files permanently (unlike DELETE, which moves it to the trash) and fires the application.rejected webhook. Optional body: {\"notify\": true, \"reason\": \"...\"} emails the applicant (reason max. 2000 characters)",
                "operationId": "postApplicationsByIdReject",
                "description": "Approving also creates a contact and therefore additionally requires the \"contacts:write\" scope.",
                "x-required-scopes": [
                    "applications:write"
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "additionalProperties": true
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Result of the action",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "description": "Result of the action"
                                        }
                                    },
                                    "additionalProperties": true
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/categories": {
            "get": {
                "tags": [
                    "categories"
                ],
                "summary": "List all categories",
                "operationId": "getCategories",
                "x-required-scopes": [
                    "categories:read"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "hierarchical",
                        "in": "query",
                        "required": false,
                        "description": "Return the complete category tree, unpaginated (1); without it the flat list is paginated (page, per_page)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Categories"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "category_key": "string",
                                            "title": "string",
                                            "content": "string",
                                            "parent_category_id": 1,
                                            "event_keys": [],
                                            "is_visible": true,
                                            "applicant_visibility": "string",
                                            "account_access_enabled": true,
                                            "sort_order": 1,
                                            "level": 1,
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "post": {
                "tags": [
                    "categories"
                ],
                "summary": "Create a new category",
                "operationId": "postCategories",
                "x-required-scopes": [
                    "categories:write"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CategoriesCreateInput"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created; data.id is the ID of the new record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": true,
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/categories/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "categories"
                ],
                "summary": "Retrieve a single category",
                "operationId": "getCategoriesById",
                "x-required-scopes": [
                    "categories:read"
                ],
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Categories"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "category_key": "string",
                                        "title": "string",
                                        "content": "string",
                                        "parent_category_id": 1,
                                        "event_keys": [],
                                        "is_visible": true,
                                        "applicant_visibility": "string",
                                        "account_access_enabled": true,
                                        "sort_order": 1,
                                        "level": 1,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "put": {
                "tags": [
                    "categories"
                ],
                "summary": "Update a category",
                "operationId": "putCategoriesById",
                "x-required-scopes": [
                    "categories:write"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CategoriesInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Categories"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "category_key": "string",
                                        "title": "string",
                                        "content": "string",
                                        "parent_category_id": 1,
                                        "event_keys": [],
                                        "is_visible": true,
                                        "applicant_visibility": "string",
                                        "account_access_enabled": true,
                                        "sort_order": 1,
                                        "level": 1,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "patch": {
                "tags": [
                    "categories"
                ],
                "summary": "Update a category",
                "operationId": "patchCategoriesById",
                "x-required-scopes": [
                    "categories:write"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CategoriesInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Categories"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "category_key": "string",
                                        "title": "string",
                                        "content": "string",
                                        "parent_category_id": 1,
                                        "event_keys": [],
                                        "is_visible": true,
                                        "applicant_visibility": "string",
                                        "account_access_enabled": true,
                                        "sort_order": 1,
                                        "level": 1,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "delete": {
                "tags": [
                    "categories"
                ],
                "summary": "Delete a category",
                "operationId": "deleteCategoriesById",
                "x-required-scopes": [
                    "categories:write"
                ],
                "responses": {
                    "204": {
                        "description": "Deleted (no content)"
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/invoices": {
            "get": {
                "tags": [
                    "invoices"
                ],
                "summary": "List all invoices (open_amount already subtracts payments, credit notes and write-offs)",
                "operationId": "getInvoices",
                "x-required-scopes": [
                    "invoices:read"
                ],
                "x-feature-flag": "invoices",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "description": "Filter by invoice status",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "customer_number",
                        "in": "query",
                        "required": false,
                        "description": "Filter by customer number",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "event_key",
                        "in": "query",
                        "required": false,
                        "description": "Filter by event key",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "required": false,
                        "description": "Filter by invoice type (invoice, credit_note)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "description": "Sort field (invoice_number, invoice_date = issue date, empty for drafts and sorted last, total, status, due_date, created_at)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "query",
                        "required": false,
                        "description": "Sort direction (ASC or DESC, default: DESC)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "required": false,
                        "description": "Include related data (items, payments, contact, credit_notes)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "format",
                        "in": "query",
                        "required": false,
                        "description": "e-invoice only: xrechnung or zugferd (default: the format set on the invoice)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "output",
                        "in": "query",
                        "required": false,
                        "description": "e-invoice only: xml or pdf (default: xml for XRechnung, pdf for ZUGFeRD)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Invoices"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "invoice_number": "string",
                                            "display_number": "string",
                                            "invoice_type": "string",
                                            "related_invoice_id": 1,
                                            "status": "string",
                                            "event_participant_id": 1,
                                            "contact_id": 1,
                                            "invoice_date": "2026-01-15T10:00:00+01:00",
                                            "issued_at": "2026-01-15T10:00:00+01:00",
                                            "total": 100,
                                            "currency": "string",
                                            "credited_amount": 100,
                                            "paid_amount": 100,
                                            "written_off_amount": 100,
                                            "open_amount": 100,
                                            "service_date": "2026-01-15T10:00:00+01:00",
                                            "due_date": "2026-01-15T10:00:00+01:00",
                                            "is_reverse_charge": true,
                                            "is_locked": true,
                                            "locked_at": "2026-01-15T10:00:00+01:00",
                                            "sent_at": "2026-01-15T10:00:00+01:00",
                                            "reminder_sent_at": "2026-01-15T10:00:00+01:00",
                                            "reminder_count": 1,
                                            "cancellation_reason": "string",
                                            "e_invoice_format": "string",
                                            "e_invoice_status": "string",
                                            "leitweg_id": "string",
                                            "buyer_reference": "string",
                                            "po_number": "string",
                                            "notes": "string",
                                            "links": {},
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "post": {
                "tags": [
                    "invoices"
                ],
                "summary": "Create a draft for a participation (event_participant_id) or a contact (contact_id). Lines come from \"items\" (description, quantity, unit_price net, tax_rate from your invoice settings) and/or the participation's open billable items (booth, service orders, documents; default when no items are given; \"billable_item_ids\" picks single ones). The due date defaults to the payment terms. \"issue\": true issues it right away (optional \"invoice_date\"), \"send\": true also e-mails it. Returns 201 with the invoice; problems with issuing or sending are listed in \"warnings\". Fires invoice.created",
                "operationId": "postInvoices",
                "x-required-scopes": [
                    "invoices:write"
                ],
                "x-feature-flag": "invoices",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/InvoicesCreateInput"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created; data.id is the ID of the new record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": true,
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/invoices/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "invoices"
                ],
                "summary": "Retrieve a single invoice with its lines (include=payments,credit_notes,contact for more)",
                "operationId": "getInvoicesById",
                "x-required-scopes": [
                    "invoices:read"
                ],
                "x-feature-flag": "invoices",
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Invoices"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "invoice_number": "string",
                                        "display_number": "string",
                                        "invoice_type": "string",
                                        "related_invoice_id": 1,
                                        "status": "string",
                                        "event_participant_id": 1,
                                        "contact_id": 1,
                                        "invoice_date": "2026-01-15T10:00:00+01:00",
                                        "issued_at": "2026-01-15T10:00:00+01:00",
                                        "total": 100,
                                        "currency": "string",
                                        "credited_amount": 100,
                                        "paid_amount": 100,
                                        "written_off_amount": 100,
                                        "open_amount": 100,
                                        "service_date": "2026-01-15T10:00:00+01:00",
                                        "due_date": "2026-01-15T10:00:00+01:00",
                                        "is_reverse_charge": true,
                                        "is_locked": true,
                                        "locked_at": "2026-01-15T10:00:00+01:00",
                                        "sent_at": "2026-01-15T10:00:00+01:00",
                                        "reminder_sent_at": "2026-01-15T10:00:00+01:00",
                                        "reminder_count": 1,
                                        "cancellation_reason": "string",
                                        "e_invoice_format": "string",
                                        "e_invoice_status": "string",
                                        "leitweg_id": "string",
                                        "buyer_reference": "string",
                                        "po_number": "string",
                                        "notes": "string",
                                        "links": {},
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "put": {
                "tags": [
                    "invoices"
                ],
                "summary": "Update an invoice: notes and due_date (also on issued invoices); status \"sent\" on a draft issues it (like POST /issue), status \"cancelled\" cancels it (like POST /cancel, with \"cancellation_reason\"). paid, partially_paid, overdue and refunded follow from payments, credit notes and the dunning run and are rejected with 422",
                "operationId": "putInvoicesById",
                "x-required-scopes": [
                    "invoices:write"
                ],
                "x-feature-flag": "invoices",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/InvoicesInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Invoices"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "invoice_number": "string",
                                        "display_number": "string",
                                        "invoice_type": "string",
                                        "related_invoice_id": 1,
                                        "status": "string",
                                        "event_participant_id": 1,
                                        "contact_id": 1,
                                        "invoice_date": "2026-01-15T10:00:00+01:00",
                                        "issued_at": "2026-01-15T10:00:00+01:00",
                                        "total": 100,
                                        "currency": "string",
                                        "credited_amount": 100,
                                        "paid_amount": 100,
                                        "written_off_amount": 100,
                                        "open_amount": 100,
                                        "service_date": "2026-01-15T10:00:00+01:00",
                                        "due_date": "2026-01-15T10:00:00+01:00",
                                        "is_reverse_charge": true,
                                        "is_locked": true,
                                        "locked_at": "2026-01-15T10:00:00+01:00",
                                        "sent_at": "2026-01-15T10:00:00+01:00",
                                        "reminder_sent_at": "2026-01-15T10:00:00+01:00",
                                        "reminder_count": 1,
                                        "cancellation_reason": "string",
                                        "e_invoice_format": "string",
                                        "e_invoice_status": "string",
                                        "leitweg_id": "string",
                                        "buyer_reference": "string",
                                        "po_number": "string",
                                        "notes": "string",
                                        "links": {},
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "patch": {
                "tags": [
                    "invoices"
                ],
                "summary": "Update an invoice: notes and due_date (also on issued invoices); status \"sent\" on a draft issues it (like POST /issue), status \"cancelled\" cancels it (like POST /cancel, with \"cancellation_reason\"). paid, partially_paid, overdue and refunded follow from payments, credit notes and the dunning run and are rejected with 422",
                "operationId": "patchInvoicesById",
                "x-required-scopes": [
                    "invoices:write"
                ],
                "x-feature-flag": "invoices",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/InvoicesInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Invoices"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "invoice_number": "string",
                                        "display_number": "string",
                                        "invoice_type": "string",
                                        "related_invoice_id": 1,
                                        "status": "string",
                                        "event_participant_id": 1,
                                        "contact_id": 1,
                                        "invoice_date": "2026-01-15T10:00:00+01:00",
                                        "issued_at": "2026-01-15T10:00:00+01:00",
                                        "total": 100,
                                        "currency": "string",
                                        "credited_amount": 100,
                                        "paid_amount": 100,
                                        "written_off_amount": 100,
                                        "open_amount": 100,
                                        "service_date": "2026-01-15T10:00:00+01:00",
                                        "due_date": "2026-01-15T10:00:00+01:00",
                                        "is_reverse_charge": true,
                                        "is_locked": true,
                                        "locked_at": "2026-01-15T10:00:00+01:00",
                                        "sent_at": "2026-01-15T10:00:00+01:00",
                                        "reminder_sent_at": "2026-01-15T10:00:00+01:00",
                                        "reminder_count": 1,
                                        "cancellation_reason": "string",
                                        "e_invoice_format": "string",
                                        "e_invoice_status": "string",
                                        "leitweg_id": "string",
                                        "buyer_reference": "string",
                                        "po_number": "string",
                                        "notes": "string",
                                        "links": {},
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/invoices/{id}/issue": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "post": {
                "tags": [
                    "invoices"
                ],
                "summary": "Issue a draft: assigns the next invoice number and the invoice date (today or \"invoice_date\", at most back to the start of the previous month and never before the last issued invoice) and locks it. 422 for an invoice without lines or one that is already issued",
                "operationId": "postInvoicesByIdIssue",
                "x-required-scopes": [
                    "invoices:write"
                ],
                "x-feature-flag": "invoices",
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "additionalProperties": true
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Result of the action",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "description": "Result of the action"
                                        }
                                    },
                                    "additionalProperties": true
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/invoices/{id}/send": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "post": {
                "tags": [
                    "invoices"
                ],
                "summary": "E-mail the invoice PDF (plus the XRechnung XML) to the customer's billing address or to \"to\" (cc, bcc, subject and a personal \"message\" are optional). A draft is issued first, so the attachment always carries the final number. The text uses the customer's language. Fires invoice.sent",
                "operationId": "postInvoicesByIdSend",
                "x-required-scopes": [
                    "invoices:write"
                ],
                "x-feature-flag": "invoices",
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "additionalProperties": true
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Result of the action",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "description": "Result of the action"
                                        }
                                    },
                                    "additionalProperties": true
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/invoices/{id}/pdf": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "invoices"
                ],
                "summary": "Download the invoice PDF (application/pdf). Issued e-invoices are served from the archive; drafts carry a draft watermark",
                "operationId": "getInvoicesByIdPdf",
                "x-required-scopes": [
                    "invoices:read"
                ],
                "x-feature-flag": "invoices",
                "responses": {
                    "200": {
                        "description": "The file",
                        "content": {
                            "application/pdf": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/invoices/{id}/e-invoice": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "invoices"
                ],
                "summary": "Download the e-invoice: format=xrechnung (default output: XML) or zugferd (default output: hybrid PDF); output=xml|pdf overrides it. Only the format set on the invoice is available; issued invoices come from the archive. 422 when e-invoicing is not enabled or master data is missing",
                "operationId": "getInvoicesByIdEInvoice",
                "x-required-scopes": [
                    "invoices:read"
                ],
                "x-feature-flag": "invoices",
                "responses": {
                    "200": {
                        "description": "The file",
                        "content": {
                            "application/xml": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/invoices/{id}/cancel": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "post": {
                "tags": [
                    "invoices"
                ],
                "summary": "Cancel an invoice (Storno). An issued invoice is never edited: the open remainder is reversed by a credit note (one line per tax rate); \"reason\" is required and documented. A draft is simply discarded. Optional \"send_credit_note\": true e-mails the credit note. Returns invoice and credit_note. Fires invoice.cancelled and credit_note.created. 409 if already cancelled, 422 for credit notes and refunded invoices",
                "operationId": "postInvoicesByIdCancel",
                "x-required-scopes": [
                    "invoices:write"
                ],
                "x-feature-flag": "invoices",
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "additionalProperties": true
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Result of the action",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "description": "Result of the action"
                                        }
                                    },
                                    "additionalProperties": true
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/credit-notes": {
            "get": {
                "tags": [
                    "credit-notes"
                ],
                "summary": "List all credit notes",
                "operationId": "getCreditNotes",
                "x-required-scopes": [
                    "invoices:read"
                ],
                "x-feature-flag": "invoices",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "description": "Filter by invoice status",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "customer_number",
                        "in": "query",
                        "required": false,
                        "description": "Filter by customer number",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "event_key",
                        "in": "query",
                        "required": false,
                        "description": "Filter by event key",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "required": false,
                        "description": "Include related data (items, payments, contact, credit_notes)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/CreditNotes"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "invoice_number": "string",
                                            "display_number": "string",
                                            "invoice_type": "string",
                                            "related_invoice_id": 1,
                                            "status": "string",
                                            "event_participant_id": 1,
                                            "contact_id": 1,
                                            "invoice_date": "2026-01-15T10:00:00+01:00",
                                            "issued_at": "2026-01-15T10:00:00+01:00",
                                            "total": 100,
                                            "currency": "string",
                                            "credited_amount": 100,
                                            "paid_amount": 100,
                                            "written_off_amount": 100,
                                            "open_amount": 100,
                                            "service_date": "2026-01-15T10:00:00+01:00",
                                            "due_date": "2026-01-15T10:00:00+01:00",
                                            "is_reverse_charge": true,
                                            "is_locked": true,
                                            "locked_at": "2026-01-15T10:00:00+01:00",
                                            "sent_at": "2026-01-15T10:00:00+01:00",
                                            "reminder_sent_at": "2026-01-15T10:00:00+01:00",
                                            "reminder_count": 1,
                                            "cancellation_reason": "string",
                                            "e_invoice_format": "string",
                                            "e_invoice_status": "string",
                                            "leitweg_id": "string",
                                            "buyer_reference": "string",
                                            "po_number": "string",
                                            "notes": "string",
                                            "links": {},
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/credit-notes/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "credit-notes"
                ],
                "summary": "Retrieve a single credit note (related_invoice_id is the corrected invoice)",
                "operationId": "getCreditNotesById",
                "x-required-scopes": [
                    "invoices:read"
                ],
                "x-feature-flag": "invoices",
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/CreditNotes"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "invoice_number": "string",
                                        "display_number": "string",
                                        "invoice_type": "string",
                                        "related_invoice_id": 1,
                                        "status": "string",
                                        "event_participant_id": 1,
                                        "contact_id": 1,
                                        "invoice_date": "2026-01-15T10:00:00+01:00",
                                        "issued_at": "2026-01-15T10:00:00+01:00",
                                        "total": 100,
                                        "currency": "string",
                                        "credited_amount": 100,
                                        "paid_amount": 100,
                                        "written_off_amount": 100,
                                        "open_amount": 100,
                                        "service_date": "2026-01-15T10:00:00+01:00",
                                        "due_date": "2026-01-15T10:00:00+01:00",
                                        "is_reverse_charge": true,
                                        "is_locked": true,
                                        "locked_at": "2026-01-15T10:00:00+01:00",
                                        "sent_at": "2026-01-15T10:00:00+01:00",
                                        "reminder_sent_at": "2026-01-15T10:00:00+01:00",
                                        "reminder_count": 1,
                                        "cancellation_reason": "string",
                                        "e_invoice_format": "string",
                                        "e_invoice_status": "string",
                                        "leitweg_id": "string",
                                        "buyer_reference": "string",
                                        "po_number": "string",
                                        "notes": "string",
                                        "links": {},
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/credit-notes/{id}/pdf": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "credit-notes"
                ],
                "summary": "Download the credit note PDF",
                "operationId": "getCreditNotesByIdPdf",
                "x-required-scopes": [
                    "invoices:read"
                ],
                "x-feature-flag": "invoices",
                "responses": {
                    "200": {
                        "description": "The file",
                        "content": {
                            "application/pdf": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/refunds": {
            "get": {
                "tags": [
                    "refunds"
                ],
                "summary": "List all refunds (\"source\" is refund or payment; gateway rows have ids like \"payment-95\")",
                "operationId": "getRefunds",
                "x-required-scopes": [
                    "payments:read"
                ],
                "x-feature-flag": "invoices",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "invoice_number",
                        "in": "query",
                        "required": false,
                        "description": "Only refunds of this invoice",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "description": "Filter by status (pending, completed, failed)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "gateway",
                        "in": "query",
                        "required": false,
                        "description": "Filter by gateway (stripe, paypal, manual ...)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "required": false,
                        "description": "Filter payments from this date (ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "required": false,
                        "description": "Filter payments until this date (ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "description": "Sort field (refund_id, amount, status, gateway, created_at, processed_at)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "query",
                        "required": false,
                        "description": "Sort direction (ASC or DESC, default: DESC)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Refunds"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "source": "string",
                                            "payment_id": 1,
                                            "invoice_id": 1,
                                            "invoice_number": "string",
                                            "amount": 100,
                                            "currency": "string",
                                            "reason": "string",
                                            "gateway": "string",
                                            "gateway_refund_id": "string",
                                            "status": "string",
                                            "processed_at": "2026-01-15T10:00:00+01:00",
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/refunds/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "refunds"
                ],
                "summary": "Retrieve a single refund booked in PlanDocket",
                "operationId": "getRefundsById",
                "x-required-scopes": [
                    "payments:read"
                ],
                "x-feature-flag": "invoices",
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Refunds"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "source": "string",
                                        "payment_id": 1,
                                        "invoice_id": 1,
                                        "invoice_number": "string",
                                        "amount": 100,
                                        "currency": "string",
                                        "reason": "string",
                                        "gateway": "string",
                                        "gateway_refund_id": "string",
                                        "status": "string",
                                        "processed_at": "2026-01-15T10:00:00+01:00",
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/payment-reminders": {
            "get": {
                "tags": [
                    "payment-reminders"
                ],
                "summary": "List all payment reminders (newest first)",
                "operationId": "getPaymentReminders",
                "x-required-scopes": [
                    "invoices:read"
                ],
                "x-feature-flag": "invoices",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "invoice_id",
                        "in": "query",
                        "required": false,
                        "description": "Only reminders of this invoice (ID)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "invoice_number",
                        "in": "query",
                        "required": false,
                        "description": "Only reminders of this invoice (invoice number)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "reminder_type",
                        "in": "query",
                        "required": false,
                        "description": "Level: first, second, final or legal",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "level",
                        "in": "query",
                        "required": false,
                        "description": "Dunning level as a number (1, 2, 3 ...)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "required": false,
                        "description": "Sent from (YYYY-MM-DD or ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "required": false,
                        "description": "Sent until (YYYY-MM-DD or ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "description": "Sort field (sent_at, level, created_at, reminder_id; default sent_at descending)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "query",
                        "required": false,
                        "description": "Sort direction (ASC or DESC, default: DESC)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/PaymentReminders"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "invoice_id": 1,
                                            "invoice_number": "string",
                                            "invoice_status": "string",
                                            "event_participant_id": 1,
                                            "contact_id": 1,
                                            "reminder_type": "string",
                                            "reminder_type_label": "string",
                                            "level": 1,
                                            "fee_amount": 100,
                                            "currency": "string",
                                            "due_date": "2026-01-15T10:00:00+01:00",
                                            "dunning_stopped": true,
                                            "sent_at": "2026-01-15T10:00:00+01:00",
                                            "sent_to": "string",
                                            "sent_via": "string",
                                            "subject": "string",
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "template_key": "string",
                                            "message_preview": "string"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/payment-reminders/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "payment-reminders"
                ],
                "summary": "Retrieve a single payment reminder with its text preview",
                "operationId": "getPaymentRemindersById",
                "x-required-scopes": [
                    "invoices:read"
                ],
                "x-feature-flag": "invoices",
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/PaymentReminders"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "invoice_id": 1,
                                        "invoice_number": "string",
                                        "invoice_status": "string",
                                        "event_participant_id": 1,
                                        "contact_id": 1,
                                        "reminder_type": "string",
                                        "reminder_type_label": "string",
                                        "level": 1,
                                        "fee_amount": 100,
                                        "currency": "string",
                                        "due_date": "2026-01-15T10:00:00+01:00",
                                        "dunning_stopped": true,
                                        "sent_at": "2026-01-15T10:00:00+01:00",
                                        "sent_to": "string",
                                        "sent_via": "string",
                                        "subject": "string",
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "template_key": "string",
                                        "message_preview": "string"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/payments": {
            "get": {
                "tags": [
                    "payments"
                ],
                "summary": "List all payments",
                "operationId": "getPayments",
                "x-required-scopes": [
                    "payments:read"
                ],
                "x-feature-flag": "invoices",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "invoice_number",
                        "in": "query",
                        "required": false,
                        "description": "Filter by invoice number",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "description": "Filter by payment status",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "required": false,
                        "description": "Filter payments from this date (ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "required": false,
                        "description": "Filter payments until this date (ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "description": "Sort field (amount, status, payment_date, created_at)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "query",
                        "required": false,
                        "description": "Sort direction (ASC or DESC, default: DESC)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "required": false,
                        "description": "Include related data (invoice)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Payments"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "invoice_id": 1,
                                            "amount": 100,
                                            "currency": "string",
                                            "gateway_id": 1,
                                            "gateway_key": "string",
                                            "gateway_name": "string",
                                            "transaction_id": "string",
                                            "gateway_fee": 100,
                                            "net_amount": 100,
                                            "status": "string",
                                            "payment_date": "2026-01-15T10:00:00+01:00",
                                            "notes": "string",
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "post": {
                "tags": [
                    "payments"
                ],
                "summary": "Record a payment. Only issued, open invoices (sent, partially_paid, overdue) accept payments: drafts, cancelled or refunded invoices and credit notes are rejected with 422, a fully paid invoice with 400. Repeating a Stripe/PayPal transaction_id returns the existing payment with 200, or 409 when it belongs to another invoice",
                "operationId": "postPayments",
                "x-required-scopes": [
                    "payments:write"
                ],
                "x-feature-flag": "invoices",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PaymentsCreateInput"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created; data.id is the ID of the new record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": true,
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/payments/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "payments"
                ],
                "summary": "Retrieve a single payment",
                "operationId": "getPaymentsById",
                "x-required-scopes": [
                    "payments:read"
                ],
                "x-feature-flag": "invoices",
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Payments"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "invoice_id": 1,
                                        "amount": 100,
                                        "currency": "string",
                                        "gateway_id": 1,
                                        "gateway_key": "string",
                                        "gateway_name": "string",
                                        "transaction_id": "string",
                                        "gateway_fee": 100,
                                        "net_amount": 100,
                                        "status": "string",
                                        "payment_date": "2026-01-15T10:00:00+01:00",
                                        "notes": "string",
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "put": {
                "tags": [
                    "payments"
                ],
                "summary": "Update a payment (status, notes, payment date). Unchanged values are ignored; every change is recorded in the invoice audit log. Completion requires a payable invoice and enough open balance. On locked invoices, completed, refunded and Stripe/PayPal-confirmed payments keep their status and payment date (400); notes stay editable. Refunds cannot be changed via the API",
                "operationId": "putPaymentsById",
                "x-required-scopes": [
                    "payments:write"
                ],
                "x-feature-flag": "invoices",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PaymentsInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Payments"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "invoice_id": 1,
                                        "amount": 100,
                                        "currency": "string",
                                        "gateway_id": 1,
                                        "gateway_key": "string",
                                        "gateway_name": "string",
                                        "transaction_id": "string",
                                        "gateway_fee": 100,
                                        "net_amount": 100,
                                        "status": "string",
                                        "payment_date": "2026-01-15T10:00:00+01:00",
                                        "notes": "string",
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "patch": {
                "tags": [
                    "payments"
                ],
                "summary": "Update a payment (status, notes, payment date). Unchanged values are ignored; every change is recorded in the invoice audit log. Completion requires a payable invoice and enough open balance. On locked invoices, completed, refunded and Stripe/PayPal-confirmed payments keep their status and payment date (400); notes stay editable. Refunds cannot be changed via the API",
                "operationId": "patchPaymentsById",
                "x-required-scopes": [
                    "payments:write"
                ],
                "x-feature-flag": "invoices",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PaymentsInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Payments"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "invoice_id": 1,
                                        "amount": 100,
                                        "currency": "string",
                                        "gateway_id": 1,
                                        "gateway_key": "string",
                                        "gateway_name": "string",
                                        "transaction_id": "string",
                                        "gateway_fee": 100,
                                        "net_amount": 100,
                                        "status": "string",
                                        "payment_date": "2026-01-15T10:00:00+01:00",
                                        "notes": "string",
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "delete": {
                "tags": [
                    "payments"
                ],
                "summary": "Delete a payment",
                "operationId": "deletePaymentsById",
                "x-required-scopes": [
                    "payments:write"
                ],
                "x-feature-flag": "invoices",
                "responses": {
                    "204": {
                        "description": "Deleted (no content)"
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/booths": {
            "get": {
                "tags": [
                    "booths"
                ],
                "summary": "List all booths",
                "operationId": "getBooths",
                "x-required-scopes": [
                    "booths:read"
                ],
                "x-feature-flag": "booths",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "event_key",
                        "in": "query",
                        "required": false,
                        "description": "Filter by event key",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "plan_id",
                        "in": "query",
                        "required": false,
                        "description": "Filter by floor plan ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "description": "Filter by booth status (available, reserved, sold, blocked)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Booths"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "plan_id": 1,
                                            "plan_name": "string",
                                            "event_id": 1,
                                            "event_title": "string",
                                            "booth_type_id": 1,
                                            "booth_type_name": "string",
                                            "booth_type_key": "string",
                                            "booth_number": "string",
                                            "booth_name": "string",
                                            "description": "string",
                                            "dimensions": {},
                                            "position": {},
                                            "formula_id": 1,
                                            "fixed_price": 100,
                                            "tax_rate": 100,
                                            "status": "string",
                                            "blocked_reason": "string",
                                            "color": "string",
                                            "notes": "string",
                                            "amenities": [],
                                            "reservation": {},
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "post": {
                "tags": [
                    "booths"
                ],
                "summary": "Create a new booth. Only the status \"available\" or \"blocked\" can be set; \"reserved\" and \"sold\" follow the reservations",
                "operationId": "postBooths",
                "x-required-scopes": [
                    "booths:write"
                ],
                "x-feature-flag": "booths",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/BoothsCreateInput"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created; data.id is the ID of the new record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": true,
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/booths/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "booths"
                ],
                "summary": "Retrieve a single booth",
                "operationId": "getBoothsById",
                "x-required-scopes": [
                    "booths:read"
                ],
                "x-feature-flag": "booths",
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Booths"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "plan_id": 1,
                                        "plan_name": "string",
                                        "event_id": 1,
                                        "event_title": "string",
                                        "booth_type_id": 1,
                                        "booth_type_name": "string",
                                        "booth_type_key": "string",
                                        "booth_number": "string",
                                        "booth_name": "string",
                                        "description": "string",
                                        "dimensions": {},
                                        "position": {},
                                        "formula_id": 1,
                                        "fixed_price": 100,
                                        "tax_rate": 100,
                                        "status": "string",
                                        "blocked_reason": "string",
                                        "color": "string",
                                        "notes": "string",
                                        "amenities": [],
                                        "reservation": {},
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "put": {
                "tags": [
                    "booths"
                ],
                "summary": "Update a booth. Only \"available\" or \"blocked\" can be set as status; while a pending or confirmed reservation exists the status cannot be changed (400)",
                "operationId": "putBoothsById",
                "x-required-scopes": [
                    "booths:write"
                ],
                "x-feature-flag": "booths",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/BoothsInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Booths"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "plan_id": 1,
                                        "plan_name": "string",
                                        "event_id": 1,
                                        "event_title": "string",
                                        "booth_type_id": 1,
                                        "booth_type_name": "string",
                                        "booth_type_key": "string",
                                        "booth_number": "string",
                                        "booth_name": "string",
                                        "description": "string",
                                        "dimensions": {},
                                        "position": {},
                                        "formula_id": 1,
                                        "fixed_price": 100,
                                        "tax_rate": 100,
                                        "status": "string",
                                        "blocked_reason": "string",
                                        "color": "string",
                                        "notes": "string",
                                        "amenities": [],
                                        "reservation": {},
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "patch": {
                "tags": [
                    "booths"
                ],
                "summary": "Update a booth. Only \"available\" or \"blocked\" can be set as status; while a pending or confirmed reservation exists the status cannot be changed (400)",
                "operationId": "patchBoothsById",
                "x-required-scopes": [
                    "booths:write"
                ],
                "x-feature-flag": "booths",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/BoothsInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Booths"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "plan_id": 1,
                                        "plan_name": "string",
                                        "event_id": 1,
                                        "event_title": "string",
                                        "booth_type_id": 1,
                                        "booth_type_name": "string",
                                        "booth_type_key": "string",
                                        "booth_number": "string",
                                        "booth_name": "string",
                                        "description": "string",
                                        "dimensions": {},
                                        "position": {},
                                        "formula_id": 1,
                                        "fixed_price": 100,
                                        "tax_rate": 100,
                                        "status": "string",
                                        "blocked_reason": "string",
                                        "color": "string",
                                        "notes": "string",
                                        "amenities": [],
                                        "reservation": {},
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "delete": {
                "tags": [
                    "booths"
                ],
                "summary": "Delete a booth (refused with 400 while a pending or confirmed reservation exists)",
                "operationId": "deleteBoothsById",
                "x-required-scopes": [
                    "booths:write"
                ],
                "x-feature-flag": "booths",
                "responses": {
                    "204": {
                        "description": "Deleted (no content)"
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/booth-reservations": {
            "get": {
                "tags": [
                    "booth-reservations"
                ],
                "summary": "List all reservations",
                "operationId": "getBoothReservations",
                "x-required-scopes": [
                    "booths:read"
                ],
                "x-feature-flag": "booths",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "event_key",
                        "in": "query",
                        "required": false,
                        "description": "Filter by event key",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "booth_id",
                        "in": "query",
                        "required": false,
                        "description": "Filter by booth ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "participant_id",
                        "in": "query",
                        "required": false,
                        "description": "Filter by participant ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "description": "Filter by reservation status (pending, confirmed, cancelled)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "description": "Sort field (booth_number, status, created_at, reserved_at, final_price)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "query",
                        "required": false,
                        "description": "Sort direction (ASC or DESC, default: DESC)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "required": false,
                        "description": "Include related data (booth, participant)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/BoothReservations"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "booth_id": 1,
                                            "event_participant_id": 1,
                                            "status": "string",
                                            "reserved_at": "2026-01-15T10:00:00+01:00",
                                            "confirmed_at": "2026-01-15T10:00:00+01:00",
                                            "cancelled_at": "2026-01-15T10:00:00+01:00",
                                            "cancellation_reason": "string",
                                            "final_price": 100,
                                            "price_breakdown": {},
                                            "notes": "string",
                                            "created_by": 1,
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "post": {
                "tags": [
                    "booth-reservations"
                ],
                "summary": "Create a new reservation (409 when the booth was taken or blocked in the meantime)",
                "operationId": "postBoothReservations",
                "x-required-scopes": [
                    "booths:write"
                ],
                "x-feature-flag": "booths",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/BoothReservationsCreateInput"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created; data.id is the ID of the new record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": true,
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/booth-reservations/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "booth-reservations"
                ],
                "summary": "Retrieve a single reservation",
                "operationId": "getBoothReservationsById",
                "x-required-scopes": [
                    "booths:read"
                ],
                "x-feature-flag": "booths",
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/BoothReservations"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "booth_id": 1,
                                        "event_participant_id": 1,
                                        "status": "string",
                                        "reserved_at": "2026-01-15T10:00:00+01:00",
                                        "confirmed_at": "2026-01-15T10:00:00+01:00",
                                        "cancelled_at": "2026-01-15T10:00:00+01:00",
                                        "cancellation_reason": "string",
                                        "final_price": 100,
                                        "price_breakdown": {},
                                        "notes": "string",
                                        "created_by": 1,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "put": {
                "tags": [
                    "booth-reservations"
                ],
                "summary": "Update a reservation. Confirming or cancelling emails the exhibitor like the admin UI; send \"notify_exhibitor\": false to skip the email. Invoiced reservations cannot be cancelled or repriced (409)",
                "operationId": "putBoothReservationsById",
                "x-required-scopes": [
                    "booths:write"
                ],
                "x-feature-flag": "booths",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/BoothReservationsInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/BoothReservations"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "booth_id": 1,
                                        "event_participant_id": 1,
                                        "status": "string",
                                        "reserved_at": "2026-01-15T10:00:00+01:00",
                                        "confirmed_at": "2026-01-15T10:00:00+01:00",
                                        "cancelled_at": "2026-01-15T10:00:00+01:00",
                                        "cancellation_reason": "string",
                                        "final_price": 100,
                                        "price_breakdown": {},
                                        "notes": "string",
                                        "created_by": 1,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "patch": {
                "tags": [
                    "booth-reservations"
                ],
                "summary": "Update a reservation. Confirming or cancelling emails the exhibitor like the admin UI; send \"notify_exhibitor\": false to skip the email. Invoiced reservations cannot be cancelled or repriced (409)",
                "operationId": "patchBoothReservationsById",
                "x-required-scopes": [
                    "booths:write"
                ],
                "x-feature-flag": "booths",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/BoothReservationsInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/BoothReservations"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "booth_id": 1,
                                        "event_participant_id": 1,
                                        "status": "string",
                                        "reserved_at": "2026-01-15T10:00:00+01:00",
                                        "confirmed_at": "2026-01-15T10:00:00+01:00",
                                        "cancelled_at": "2026-01-15T10:00:00+01:00",
                                        "cancellation_reason": "string",
                                        "final_price": 100,
                                        "price_breakdown": {},
                                        "notes": "string",
                                        "created_by": 1,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "delete": {
                "tags": [
                    "booth-reservations"
                ],
                "summary": "Permanently delete a reservation (to cancel and keep the history, use PUT/PATCH with status \"cancelled\"). The booth is only released if no other active reservation holds it; invoiced reservations cannot be deleted (409)",
                "operationId": "deleteBoothReservationsById",
                "x-required-scopes": [
                    "booths:write"
                ],
                "x-feature-flag": "booths",
                "responses": {
                    "204": {
                        "description": "Deleted (no content)"
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/booth-types": {
            "get": {
                "tags": [
                    "booth-types"
                ],
                "summary": "List all booth types (booth_count = booths using the type)",
                "operationId": "getBoothTypes",
                "x-required-scopes": [
                    "plans:read"
                ],
                "x-feature-flag": "booths",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "is_active",
                        "in": "query",
                        "required": false,
                        "description": "Only active (1) or only inactive (0) booth types",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "event_key",
                        "in": "query",
                        "required": false,
                        "description": "Only booth types offered for this event (types without event restriction are included)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/BoothTypes"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "booth_type_key": "string",
                                            "booth_type_name": "string",
                                            "description": "string",
                                            "default_width": 100,
                                            "default_depth": 100,
                                            "min_width": 100,
                                            "max_width": 100,
                                            "min_depth": 100,
                                            "max_depth": 100,
                                            "color": "string",
                                            "category_keys": [],
                                            "event_keys": [],
                                            "is_active": true,
                                            "sort_order": 1,
                                            "booth_count": 1,
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "post": {
                "tags": [
                    "booth-types"
                ],
                "summary": "Create a booth type. Only booth_type_name is required; the key is generated from the name when omitted, sizes default to 3 x 3 m (allowed 1 to 20 m)",
                "operationId": "postBoothTypes",
                "x-required-scopes": [
                    "plans:write"
                ],
                "x-feature-flag": "booths",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/BoothTypesCreateInput"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created; data.id is the ID of the new record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": true,
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/booth-types/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "booth-types"
                ],
                "summary": "Retrieve a single booth type",
                "operationId": "getBoothTypesById",
                "x-required-scopes": [
                    "plans:read"
                ],
                "x-feature-flag": "booths",
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/BoothTypes"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "booth_type_key": "string",
                                        "booth_type_name": "string",
                                        "description": "string",
                                        "default_width": 100,
                                        "default_depth": 100,
                                        "min_width": 100,
                                        "max_width": 100,
                                        "min_depth": 100,
                                        "max_depth": 100,
                                        "color": "string",
                                        "category_keys": [],
                                        "event_keys": [],
                                        "is_active": true,
                                        "sort_order": 1,
                                        "booth_count": 1,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "put": {
                "tags": [
                    "booth-types"
                ],
                "summary": "Update a booth type (only the fields you send). Changing the key also updates the services limited to the old key",
                "operationId": "putBoothTypesById",
                "x-required-scopes": [
                    "plans:write"
                ],
                "x-feature-flag": "booths",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/BoothTypesInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/BoothTypes"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "booth_type_key": "string",
                                        "booth_type_name": "string",
                                        "description": "string",
                                        "default_width": 100,
                                        "default_depth": 100,
                                        "min_width": 100,
                                        "max_width": 100,
                                        "min_depth": 100,
                                        "max_depth": 100,
                                        "color": "string",
                                        "category_keys": [],
                                        "event_keys": [],
                                        "is_active": true,
                                        "sort_order": 1,
                                        "booth_count": 1,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "patch": {
                "tags": [
                    "booth-types"
                ],
                "summary": "Update a booth type (only the fields you send). Changing the key also updates the services limited to the old key",
                "operationId": "patchBoothTypesById",
                "x-required-scopes": [
                    "plans:write"
                ],
                "x-feature-flag": "booths",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/BoothTypesInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/BoothTypes"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "booth_type_key": "string",
                                        "booth_type_name": "string",
                                        "description": "string",
                                        "default_width": 100,
                                        "default_depth": 100,
                                        "min_width": 100,
                                        "max_width": 100,
                                        "min_depth": 100,
                                        "max_depth": 100,
                                        "color": "string",
                                        "category_keys": [],
                                        "event_keys": [],
                                        "is_active": true,
                                        "sort_order": 1,
                                        "booth_count": 1,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "delete": {
                "tags": [
                    "booth-types"
                ],
                "summary": "Delete a booth type. Refused with 409 while booths use it; deactivate it instead (is_active: false)",
                "operationId": "deleteBoothTypesById",
                "x-required-scopes": [
                    "plans:write"
                ],
                "x-feature-flag": "booths",
                "responses": {
                    "204": {
                        "description": "Deleted (no content)"
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/check-ins": {
            "get": {
                "tags": [
                    "check-ins"
                ],
                "summary": "List all check-ins",
                "operationId": "getCheckIns",
                "x-required-scopes": [
                    "checkins:read"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "event_key",
                        "in": "query",
                        "required": true,
                        "description": "Filter by event key (required)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/CheckIns"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "event_participant_id": 1,
                                            "event_id": 1,
                                            "event_title": "string",
                                            "event_key": "string",
                                            "contact": {},
                                            "check_in_type": "string",
                                            "badge_number": "string",
                                            "station": "string",
                                            "checked_in_at": "2026-01-15T10:00:00+01:00",
                                            "checked_out_at": "2026-01-15T10:00:00+01:00",
                                            "is_checked_in": true,
                                            "checked_in_by": "string",
                                            "notes": "string"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "post": {
                "tags": [
                    "check-ins"
                ],
                "summary": "Check in a participant",
                "operationId": "postCheckIns",
                "x-required-scopes": [
                    "checkins:write"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CheckInsCreateInput"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created; data.id is the ID of the new record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": true,
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/check-ins/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "check-ins"
                ],
                "summary": "Retrieve a single check-in",
                "operationId": "getCheckInsById",
                "x-required-scopes": [
                    "checkins:read"
                ],
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/CheckIns"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "event_participant_id": 1,
                                        "event_id": 1,
                                        "event_title": "string",
                                        "event_key": "string",
                                        "contact": {},
                                        "check_in_type": "string",
                                        "badge_number": "string",
                                        "station": "string",
                                        "checked_in_at": "2026-01-15T10:00:00+01:00",
                                        "checked_out_at": "2026-01-15T10:00:00+01:00",
                                        "is_checked_in": true,
                                        "checked_in_by": "string",
                                        "notes": "string"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "delete": {
                "tags": [
                    "check-ins"
                ],
                "summary": "Delete a check-in",
                "operationId": "deleteCheckInsById",
                "x-required-scopes": [
                    "checkins:write"
                ],
                "responses": {
                    "204": {
                        "description": "Deleted (no content)"
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/check-ins/stats": {
            "get": {
                "tags": [
                    "check-ins"
                ],
                "summary": "Get check-in statistics",
                "operationId": "getCheckInsStats",
                "x-required-scopes": [
                    "checkins:read"
                ],
                "parameters": [
                    {
                        "name": "event_key",
                        "in": "query",
                        "required": true,
                        "description": "Filter by event key (required)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Result of the action",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "description": "Result of the action"
                                        }
                                    },
                                    "additionalProperties": true
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/tasks": {
            "get": {
                "tags": [
                    "tasks"
                ],
                "summary": "List all tasks",
                "operationId": "getTasks",
                "x-required-scopes": [
                    "tasks:read"
                ],
                "x-feature-flag": "tasks",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "required": false,
                        "description": "Search term to filter results",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "description": "Filter by task status",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "priority",
                        "in": "query",
                        "required": false,
                        "description": "Filter by task priority",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "assigned_to",
                        "in": "query",
                        "required": false,
                        "description": "Filter by assigned administrator ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "entity_type",
                        "in": "query",
                        "required": false,
                        "description": "Filter by linked entity type",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "entity_id",
                        "in": "query",
                        "required": false,
                        "description": "Filter by linked entity ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "overdue",
                        "in": "query",
                        "required": false,
                        "description": "Only show overdue tasks (1)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "description": "Sort field (title, due_date, priority, status, created_at)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "query",
                        "required": false,
                        "description": "Sort direction (ASC or DESC, default: DESC)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "required": false,
                        "description": "Include related data (entity). The linked record is only expanded when the key may also read its resource (e.g. the \"contacts\" scope for a contact), otherwise entity is null",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Tasks"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "entity_type": "string",
                                            "entity_id": 1,
                                            "assigned_to": 1,
                                            "assigned_to_name": "string",
                                            "created_by": 1,
                                            "created_by_name": "string",
                                            "title": "string",
                                            "description": "string",
                                            "due_date": "2026-01-15T10:00:00+01:00",
                                            "priority": "string",
                                            "status": "string",
                                            "completed_at": "2026-01-15T10:00:00+01:00",
                                            "completed_by": 1,
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "post": {
                "tags": [
                    "tasks"
                ],
                "summary": "Create a new task",
                "operationId": "postTasks",
                "x-required-scopes": [
                    "tasks:write"
                ],
                "x-feature-flag": "tasks",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/TasksCreateInput"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created; data.id is the ID of the new record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": true,
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/tasks/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "tasks"
                ],
                "summary": "Retrieve a single task",
                "operationId": "getTasksById",
                "x-required-scopes": [
                    "tasks:read"
                ],
                "x-feature-flag": "tasks",
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Tasks"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "entity_type": "string",
                                        "entity_id": 1,
                                        "assigned_to": 1,
                                        "assigned_to_name": "string",
                                        "created_by": 1,
                                        "created_by_name": "string",
                                        "title": "string",
                                        "description": "string",
                                        "due_date": "2026-01-15T10:00:00+01:00",
                                        "priority": "string",
                                        "status": "string",
                                        "completed_at": "2026-01-15T10:00:00+01:00",
                                        "completed_by": 1,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "put": {
                "tags": [
                    "tasks"
                ],
                "summary": "Update a task",
                "operationId": "putTasksById",
                "x-required-scopes": [
                    "tasks:write"
                ],
                "x-feature-flag": "tasks",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/TasksInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Tasks"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "entity_type": "string",
                                        "entity_id": 1,
                                        "assigned_to": 1,
                                        "assigned_to_name": "string",
                                        "created_by": 1,
                                        "created_by_name": "string",
                                        "title": "string",
                                        "description": "string",
                                        "due_date": "2026-01-15T10:00:00+01:00",
                                        "priority": "string",
                                        "status": "string",
                                        "completed_at": "2026-01-15T10:00:00+01:00",
                                        "completed_by": 1,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "patch": {
                "tags": [
                    "tasks"
                ],
                "summary": "Update a task",
                "operationId": "patchTasksById",
                "x-required-scopes": [
                    "tasks:write"
                ],
                "x-feature-flag": "tasks",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/TasksInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Tasks"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "entity_type": "string",
                                        "entity_id": 1,
                                        "assigned_to": 1,
                                        "assigned_to_name": "string",
                                        "created_by": 1,
                                        "created_by_name": "string",
                                        "title": "string",
                                        "description": "string",
                                        "due_date": "2026-01-15T10:00:00+01:00",
                                        "priority": "string",
                                        "status": "string",
                                        "completed_at": "2026-01-15T10:00:00+01:00",
                                        "completed_by": 1,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "delete": {
                "tags": [
                    "tasks"
                ],
                "summary": "Move a task to the trash (restorable by an admin)",
                "operationId": "deleteTasksById",
                "x-required-scopes": [
                    "tasks:write"
                ],
                "x-feature-flag": "tasks",
                "responses": {
                    "204": {
                        "description": "Deleted (no content)"
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/documents": {
            "get": {
                "tags": [
                    "documents"
                ],
                "summary": "List all documents",
                "operationId": "getDocuments",
                "x-required-scopes": [
                    "documents:read"
                ],
                "x-feature-flag": "documents",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "entity_type",
                        "in": "query",
                        "required": false,
                        "description": "Filter by entity type",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "entity_id",
                        "in": "query",
                        "required": false,
                        "description": "Filter by entity ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "category_id",
                        "in": "query",
                        "required": false,
                        "description": "Filter by document category ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "is_contract",
                        "in": "query",
                        "required": false,
                        "description": "Filter by contract status (0 or 1)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "contract_status",
                        "in": "query",
                        "required": false,
                        "description": "Filter by contract status value",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "esign_status",
                        "in": "query",
                        "required": false,
                        "description": "Filter by e-signature status",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "description": "Sort field (document_number, created_at, updated_at, contract_status, esign_status)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "query",
                        "required": false,
                        "description": "Sort direction (ASC or DESC, default: DESC)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "required": false,
                        "description": "Include related data (line_items)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Documents"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "category_id": 1,
                                            "category_name": "string",
                                            "document_number": "string",
                                            "entity_type": "string",
                                            "entity_id": 1,
                                            "template_id": 1,
                                            "content": "string",
                                            "metadata": {},
                                            "esign_status": "string",
                                            "is_contract": true,
                                            "contract_status": "string",
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "post": {
                "tags": [
                    "documents"
                ],
                "summary": "Generate a new document",
                "operationId": "postDocuments",
                "x-required-scopes": [
                    "documents:write"
                ],
                "x-feature-flag": "documents",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/DocumentsCreateInput"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created; data.id is the ID of the new record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": true,
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/documents/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "documents"
                ],
                "summary": "Retrieve a single document",
                "operationId": "getDocumentsById",
                "x-required-scopes": [
                    "documents:read"
                ],
                "x-feature-flag": "documents",
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Documents"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "category_id": 1,
                                        "category_name": "string",
                                        "document_number": "string",
                                        "entity_type": "string",
                                        "entity_id": 1,
                                        "template_id": 1,
                                        "content": "string",
                                        "metadata": {},
                                        "esign_status": "string",
                                        "is_contract": true,
                                        "contract_status": "string",
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "put": {
                "tags": [
                    "documents"
                ],
                "summary": "Change a document: content (HTML, sanitised like the editor), metadata and, for contracts, the contract status. Locked documents (signed, sent for signature, active contract) only allow the permitted status steps (e.g. active -> terminated), otherwise 409",
                "operationId": "putDocumentsById",
                "x-required-scopes": [
                    "documents:write"
                ],
                "x-feature-flag": "documents",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/DocumentsInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Documents"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "category_id": 1,
                                        "category_name": "string",
                                        "document_number": "string",
                                        "entity_type": "string",
                                        "entity_id": 1,
                                        "template_id": 1,
                                        "content": "string",
                                        "metadata": {},
                                        "esign_status": "string",
                                        "is_contract": true,
                                        "contract_status": "string",
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "patch": {
                "tags": [
                    "documents"
                ],
                "summary": "Change a document: content (HTML, sanitised like the editor), metadata and, for contracts, the contract status. Locked documents (signed, sent for signature, active contract) only allow the permitted status steps (e.g. active -> terminated), otherwise 409",
                "operationId": "patchDocumentsById",
                "x-required-scopes": [
                    "documents:write"
                ],
                "x-feature-flag": "documents",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/DocumentsInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Documents"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "category_id": 1,
                                        "category_name": "string",
                                        "document_number": "string",
                                        "entity_type": "string",
                                        "entity_id": 1,
                                        "template_id": 1,
                                        "content": "string",
                                        "metadata": {},
                                        "esign_status": "string",
                                        "is_contract": true,
                                        "contract_status": "string",
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "delete": {
                "tags": [
                    "documents"
                ],
                "summary": "Delete a document like in the admin (open billable items of its line items are voided, a replaced booth fee is restored). Locked documents: 409",
                "operationId": "deleteDocumentsById",
                "x-required-scopes": [
                    "documents:write"
                ],
                "x-feature-flag": "documents",
                "responses": {
                    "204": {
                        "description": "Deleted (no content)"
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/documents/{id}/pdf": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "documents"
                ],
                "summary": "Download the document as PDF. variant=auto (default) returns the signed PDF of an e-signed contract when it exists, else the generated PDF; variant=signed or variant=generated forces one. The X-Document-Variant header tells which one you got",
                "operationId": "getDocumentsByIdPdf",
                "x-required-scopes": [
                    "documents:read"
                ],
                "x-feature-flag": "documents",
                "responses": {
                    "200": {
                        "description": "The file",
                        "content": {
                            "application/pdf": {
                                "schema": {
                                    "type": "string",
                                    "format": "binary"
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/submissions": {
            "get": {
                "tags": [
                    "submissions"
                ],
                "summary": "List all submissions",
                "operationId": "getSubmissions",
                "x-required-scopes": [
                    "submissions:read"
                ],
                "x-feature-flag": "submissions",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "event_key",
                        "in": "query",
                        "required": true,
                        "description": "Filter by event key (required)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "description": "Filter by submission status",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "participant_id",
                        "in": "query",
                        "required": false,
                        "description": "Filter by participant ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "type_key",
                        "in": "query",
                        "required": false,
                        "description": "Filter by submission type key",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "required": false,
                        "description": "Include related data (history)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Submissions"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "event_submission_id": 1,
                                            "event_participant_id": 1,
                                            "status": "string",
                                            "submitted_at": "2026-01-15T10:00:00+01:00",
                                            "value_text": "string",
                                            "value_file": "string",
                                            "reviewed_at": "2026-01-15T10:00:00+01:00",
                                            "reviewed_by": 1,
                                            "reviewer_name": "string",
                                            "review_notes": "string",
                                            "revision_count": 1,
                                            "is_late": true,
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00",
                                            "type_name": "string",
                                            "type_key": "string"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "post": {
                "tags": [
                    "submissions"
                ],
                "summary": "Hand in a submission (file requirements as multipart/form-data with the field \"file\", others as JSON with \"value\"). Same rules as the exhibitor portal: deadline, allowed file types and size, a new version only after a rejection or revision request (otherwise 409)",
                "operationId": "postSubmissions",
                "x-required-scopes": [
                    "submissions:write"
                ],
                "x-feature-flag": "submissions",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SubmissionsCreateInput"
                            }
                        },
                        "multipart/form-data": {
                            "schema": {
                                "$ref": "#/components/schemas/SubmissionsCreateInput"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created; data.id is the ID of the new record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": true,
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/submissions/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "submissions"
                ],
                "summary": "Retrieve a single submission",
                "operationId": "getSubmissionsById",
                "x-required-scopes": [
                    "submissions:read"
                ],
                "x-feature-flag": "submissions",
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Submissions"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "event_submission_id": 1,
                                        "event_participant_id": 1,
                                        "status": "string",
                                        "submitted_at": "2026-01-15T10:00:00+01:00",
                                        "value_text": "string",
                                        "value_file": "string",
                                        "reviewed_at": "2026-01-15T10:00:00+01:00",
                                        "reviewed_by": 1,
                                        "reviewer_name": "string",
                                        "review_notes": "string",
                                        "revision_count": 1,
                                        "is_late": true,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00",
                                        "type_name": "string",
                                        "type_key": "string"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "put": {
                "tags": [
                    "submissions"
                ],
                "summary": "Update submission status",
                "operationId": "putSubmissionsById",
                "x-required-scopes": [
                    "submissions:write"
                ],
                "x-feature-flag": "submissions",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SubmissionsInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Submissions"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "event_submission_id": 1,
                                        "event_participant_id": 1,
                                        "status": "string",
                                        "submitted_at": "2026-01-15T10:00:00+01:00",
                                        "value_text": "string",
                                        "value_file": "string",
                                        "reviewed_at": "2026-01-15T10:00:00+01:00",
                                        "reviewed_by": 1,
                                        "reviewer_name": "string",
                                        "review_notes": "string",
                                        "revision_count": 1,
                                        "is_late": true,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00",
                                        "type_name": "string",
                                        "type_key": "string"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "patch": {
                "tags": [
                    "submissions"
                ],
                "summary": "Update submission status",
                "operationId": "patchSubmissionsById",
                "x-required-scopes": [
                    "submissions:write"
                ],
                "x-feature-flag": "submissions",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SubmissionsInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Submissions"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "event_submission_id": 1,
                                        "event_participant_id": 1,
                                        "status": "string",
                                        "submitted_at": "2026-01-15T10:00:00+01:00",
                                        "value_text": "string",
                                        "value_file": "string",
                                        "reviewed_at": "2026-01-15T10:00:00+01:00",
                                        "reviewed_by": 1,
                                        "reviewer_name": "string",
                                        "review_notes": "string",
                                        "revision_count": 1,
                                        "is_late": true,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00",
                                        "type_name": "string",
                                        "type_key": "string"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/service-orders": {
            "get": {
                "tags": [
                    "service-orders"
                ],
                "summary": "List all orders",
                "operationId": "getServiceOrders",
                "x-required-scopes": [
                    "service_orders:read"
                ],
                "x-feature-flag": "service_orders",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "event_key",
                        "in": "query",
                        "required": false,
                        "description": "Filter by event key",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "description": "Filter by order status",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "participant_id",
                        "in": "query",
                        "required": false,
                        "description": "Filter by participant ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order_number",
                        "in": "query",
                        "required": false,
                        "description": "Filter by order number",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "description": "Sort field (order_number, total, status, submitted_at, created_at)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "query",
                        "required": false,
                        "description": "Sort direction (ASC or DESC, default: DESC)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "required": false,
                        "description": "Include related data (items, participant)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/ServiceOrders"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "order_number": "string",
                                            "event_participant_id": 1,
                                            "status": "string",
                                            "subtotal": 100,
                                            "tax_total": 100,
                                            "total": 100,
                                            "currency": "string",
                                            "notes": "string",
                                            "submitted_at": "2026-01-15T10:00:00+01:00",
                                            "confirmed_at": "2026-01-15T10:00:00+01:00",
                                            "cancelled_at": "2026-01-15T10:00:00+01:00",
                                            "cancellation_reason": "string",
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/service-orders/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "service-orders"
                ],
                "summary": "Retrieve a single order",
                "operationId": "getServiceOrdersById",
                "x-required-scopes": [
                    "service_orders:read"
                ],
                "x-feature-flag": "service_orders",
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/ServiceOrders"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "order_number": "string",
                                        "event_participant_id": 1,
                                        "status": "string",
                                        "subtotal": 100,
                                        "tax_total": 100,
                                        "total": 100,
                                        "currency": "string",
                                        "notes": "string",
                                        "submitted_at": "2026-01-15T10:00:00+01:00",
                                        "confirmed_at": "2026-01-15T10:00:00+01:00",
                                        "cancelled_at": "2026-01-15T10:00:00+01:00",
                                        "cancellation_reason": "string",
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "patch": {
                "tags": [
                    "service-orders"
                ],
                "summary": "Change the status: submitted → confirmed or cancelled, confirmed → completed or cancelled (\"cancellation_reason\" optional). Cancelling gives the stock back and voids open billable items; an invoiced order cannot be cancelled (409, correct it with a credit note). Fires service_order.confirmed / .completed / .cancelled",
                "operationId": "patchServiceOrdersById",
                "x-required-scopes": [
                    "service_orders:write"
                ],
                "x-feature-flag": "service_orders",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ServiceOrdersInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/ServiceOrders"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "order_number": "string",
                                        "event_participant_id": 1,
                                        "status": "string",
                                        "subtotal": 100,
                                        "tax_total": 100,
                                        "total": 100,
                                        "currency": "string",
                                        "notes": "string",
                                        "submitted_at": "2026-01-15T10:00:00+01:00",
                                        "confirmed_at": "2026-01-15T10:00:00+01:00",
                                        "cancelled_at": "2026-01-15T10:00:00+01:00",
                                        "cancellation_reason": "string",
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/service-orders/{id}/status": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "post": {
                "tags": [
                    "service-orders"
                ],
                "summary": "Same as PATCH /service-orders/{id} (for clients that cannot send PATCH)",
                "operationId": "postServiceOrdersByIdStatus",
                "x-required-scopes": [
                    "service_orders:write"
                ],
                "x-feature-flag": "service_orders",
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "additionalProperties": true
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Result of the action",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "description": "Result of the action"
                                        }
                                    },
                                    "additionalProperties": true
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/plans": {
            "get": {
                "tags": [
                    "plans"
                ],
                "summary": "List all floor plans",
                "operationId": "getPlans",
                "x-required-scopes": [
                    "plans:read"
                ],
                "x-feature-flag": "plans",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "event_key",
                        "in": "query",
                        "required": false,
                        "description": "Filter by event key",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "is_active",
                        "in": "query",
                        "required": false,
                        "description": "Filter by active status (0 or 1)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "description": "Sort field (plan_name, plan_key, area_name, sort_order, created_at, updated_at)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "query",
                        "required": false,
                        "description": "Sort direction (ASC or DESC, default: DESC)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "required": false,
                        "description": "Include related data (booth_count, booths)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Plans"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "event_id": 1,
                                            "event_title": "string",
                                            "plan_key": "string",
                                            "plan_name": "string",
                                            "description": "string",
                                            "area_name": "string",
                                            "width": 100,
                                            "height": 100,
                                            "background_image": "string",
                                            "floor_plan_svg": "string",
                                            "floor_plan_width": 100,
                                            "floor_plan_height": 100,
                                            "grid_size": 1,
                                            "scale_factor": 100,
                                            "is_active": true,
                                            "sort_order": 1,
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/plans/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "plans"
                ],
                "summary": "Retrieve a single floor plan",
                "operationId": "getPlansById",
                "x-required-scopes": [
                    "plans:read"
                ],
                "x-feature-flag": "plans",
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Plans"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "event_id": 1,
                                        "event_title": "string",
                                        "plan_key": "string",
                                        "plan_name": "string",
                                        "description": "string",
                                        "area_name": "string",
                                        "width": 100,
                                        "height": 100,
                                        "background_image": "string",
                                        "floor_plan_svg": "string",
                                        "floor_plan_width": 100,
                                        "floor_plan_height": 100,
                                        "grid_size": 1,
                                        "scale_factor": 100,
                                        "is_active": true,
                                        "sort_order": 1,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/custom-fields/definitions": {
            "get": {
                "tags": [
                    "custom-fields"
                ],
                "summary": "List all custom fields",
                "operationId": "getCustomFieldsDefinitions",
                "x-required-scopes": [
                    "custom_fields:read"
                ],
                "parameters": [
                    {
                        "name": "entity_type",
                        "in": "query",
                        "required": false,
                        "description": "Filter definitions by entity type",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "is_active",
                        "in": "query",
                        "required": false,
                        "description": "Filter definitions by active status (0 or 1)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Result of the action",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "description": "Result of the action"
                                        }
                                    },
                                    "additionalProperties": true
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/custom-fields/{entity_type}/{entity_id}": {
            "parameters": [
                {
                    "name": "entity_type",
                    "in": "path",
                    "required": true,
                    "description": "Path value (see the description of the endpoint)",
                    "schema": {
                        "type": "string"
                    }
                },
                {
                    "name": "entity_id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "custom-fields"
                ],
                "summary": "Get field values for entity",
                "operationId": "getCustomFieldsByEntityTypeByEntityId",
                "x-required-scopes": [
                    "custom_fields:read"
                ],
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/CustomFields"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "form_id": 1,
                                        "entity_type": "string",
                                        "field_key": "string",
                                        "field_label": "string",
                                        "field_type": "string",
                                        "section_key": "string",
                                        "field_options": "string",
                                        "validation_rules": "string",
                                        "is_required": true,
                                        "is_searchable": true,
                                        "applicant_visibility": "string",
                                        "is_active": true,
                                        "display_order": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "put": {
                "tags": [
                    "custom-fields"
                ],
                "summary": "Update field values",
                "operationId": "putCustomFieldsByEntityTypeByEntityId",
                "x-required-scopes": [
                    "custom_fields:write"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CustomFieldsInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/CustomFields"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "form_id": 1,
                                        "entity_type": "string",
                                        "field_key": "string",
                                        "field_label": "string",
                                        "field_type": "string",
                                        "section_key": "string",
                                        "field_options": "string",
                                        "validation_rules": "string",
                                        "is_required": true,
                                        "is_searchable": true,
                                        "applicant_visibility": "string",
                                        "is_active": true,
                                        "display_order": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/services": {
            "get": {
                "tags": [
                    "services"
                ],
                "summary": "List all services",
                "operationId": "getServices",
                "x-required-scopes": [
                    "services:read"
                ],
                "x-feature-flag": "services",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "required": false,
                        "description": "Search term to filter results",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "category_id",
                        "in": "query",
                        "required": false,
                        "description": "Filter by service category ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "event_key",
                        "in": "query",
                        "required": false,
                        "description": "Filter by event key",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "is_active",
                        "in": "query",
                        "required": false,
                        "description": "Filter by active status (0 or 1)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "required": false,
                        "description": "Include related data (category)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Services"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "category_id": 1,
                                            "category_name": "string",
                                            "service_key": "string",
                                            "service_name": "string",
                                            "description": "string",
                                            "short_description": "string",
                                            "unit": "string",
                                            "unit_label": "string",
                                            "base_price": 100,
                                            "tax_rate": 100,
                                            "min_quantity": 1,
                                            "max_quantity": 1,
                                            "quantity_step": 1,
                                            "requires_specification": true,
                                            "specification_label": "string",
                                            "specification_placeholder": "string",
                                            "lead_time_days": 1,
                                            "image_filename": "string",
                                            "is_active": true,
                                            "sort_order": 1,
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/services/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "services"
                ],
                "summary": "Retrieve a single service",
                "operationId": "getServicesById",
                "x-required-scopes": [
                    "services:read"
                ],
                "x-feature-flag": "services",
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Services"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "category_id": 1,
                                        "category_name": "string",
                                        "service_key": "string",
                                        "service_name": "string",
                                        "description": "string",
                                        "short_description": "string",
                                        "unit": "string",
                                        "unit_label": "string",
                                        "base_price": 100,
                                        "tax_rate": 100,
                                        "min_quantity": 1,
                                        "max_quantity": 1,
                                        "quantity_step": 1,
                                        "requires_specification": true,
                                        "specification_label": "string",
                                        "specification_placeholder": "string",
                                        "lead_time_days": 1,
                                        "image_filename": "string",
                                        "is_active": true,
                                        "sort_order": 1,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/service-categories": {
            "get": {
                "tags": [
                    "service-categories"
                ],
                "summary": "List service categories (active ones by default; is_active=all for every row)",
                "operationId": "getServiceCategories",
                "x-required-scopes": [
                    "services:read"
                ],
                "x-feature-flag": "services",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "is_active",
                        "in": "query",
                        "required": false,
                        "description": "Default: active entries only; 0 = only inactive, all = every entry",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/ServiceCategories"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "category_key": "string",
                                            "category_name": "string",
                                            "description": "string",
                                            "color": "string",
                                            "is_active": true,
                                            "sort_order": 1,
                                            "service_count": 1,
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/service-categories/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "service-categories"
                ],
                "summary": "Retrieve a single service category",
                "operationId": "getServiceCategoriesById",
                "x-required-scopes": [
                    "services:read"
                ],
                "x-feature-flag": "services",
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/ServiceCategories"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "category_key": "string",
                                        "category_name": "string",
                                        "description": "string",
                                        "color": "string",
                                        "is_active": true,
                                        "sort_order": 1,
                                        "service_count": 1,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/event-services": {
            "get": {
                "tags": [
                    "event-services"
                ],
                "summary": "List the services of an event (event_key or event_id is required)",
                "operationId": "getEventServices",
                "x-required-scopes": [
                    "services:read"
                ],
                "x-feature-flag": "services",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "event_key",
                        "in": "query",
                        "required": false,
                        "description": "Event key (event_key or event_id is required)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "event_id",
                        "in": "query",
                        "required": false,
                        "description": "Event ID (alternative to event_key)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "booth_type_key",
                        "in": "query",
                        "required": false,
                        "description": "Only services that can be ordered for this booth type",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "is_active",
                        "in": "query",
                        "required": false,
                        "description": "Default: offers that are switched on; all = also switched-off offers",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/EventServices"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "event_id": 1,
                                            "service_id": 1,
                                            "service_key": "string",
                                            "service_name": "string",
                                            "category_key": "string",
                                            "category_name": "string",
                                            "unit": "string",
                                            "base_price": 100,
                                            "price_override": 100,
                                            "early_bird_price": 100,
                                            "early_bird_deadline": "2026-01-15T10:00:00+01:00",
                                            "early_bird_active": true,
                                            "effective_price": 100,
                                            "tax_rate": 100,
                                            "order_deadline": "2026-01-15T10:00:00+01:00",
                                            "max_quantity_per_participant": 1,
                                            "total_inventory": 1,
                                            "remaining_inventory": 1,
                                            "is_active": true,
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/event-services/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "event-services"
                ],
                "summary": "Retrieve a single event service with order statistics",
                "operationId": "getEventServicesById",
                "x-required-scopes": [
                    "services:read"
                ],
                "x-feature-flag": "services",
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/EventServices"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "event_id": 1,
                                        "service_id": 1,
                                        "service_key": "string",
                                        "service_name": "string",
                                        "category_key": "string",
                                        "category_name": "string",
                                        "unit": "string",
                                        "base_price": 100,
                                        "price_override": 100,
                                        "early_bird_price": 100,
                                        "early_bird_deadline": "2026-01-15T10:00:00+01:00",
                                        "early_bird_active": true,
                                        "effective_price": 100,
                                        "tax_rate": 100,
                                        "order_deadline": "2026-01-15T10:00:00+01:00",
                                        "max_quantity_per_participant": 1,
                                        "total_inventory": 1,
                                        "remaining_inventory": 1,
                                        "is_active": true,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/submission-types": {
            "get": {
                "tags": [
                    "submission-types"
                ],
                "summary": "List submission types (active ones by default; is_active=all for every row)",
                "operationId": "getSubmissionTypes",
                "x-required-scopes": [
                    "submissions:read"
                ],
                "x-feature-flag": "submissions",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "is_active",
                        "in": "query",
                        "required": false,
                        "description": "Default: active entries only; 0 = only inactive, all = every entry",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/SubmissionTypes"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "type_key": "string",
                                            "type_name": "string",
                                            "description": "string",
                                            "input_type": "string",
                                            "custom_field_key": "string",
                                            "allowed_extensions": [],
                                            "max_file_size_mb": 1,
                                            "is_required": true,
                                            "requires_approval": true,
                                            "category_keys": [],
                                            "help_text": "string",
                                            "example_url": "string",
                                            "is_active": true,
                                            "sort_order": 1,
                                            "event_count": 1,
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/submission-types/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "submission-types"
                ],
                "summary": "Retrieve a single submission type",
                "operationId": "getSubmissionTypesById",
                "x-required-scopes": [
                    "submissions:read"
                ],
                "x-feature-flag": "submissions",
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/SubmissionTypes"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "type_key": "string",
                                        "type_name": "string",
                                        "description": "string",
                                        "input_type": "string",
                                        "custom_field_key": "string",
                                        "allowed_extensions": [],
                                        "max_file_size_mb": 1,
                                        "is_required": true,
                                        "requires_approval": true,
                                        "category_keys": [],
                                        "help_text": "string",
                                        "example_url": "string",
                                        "is_active": true,
                                        "sort_order": 1,
                                        "event_count": 1,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/list-templates": {
            "get": {
                "tags": [
                    "list-templates"
                ],
                "summary": "List the list templates (active ones by default; is_active=all for every row)",
                "operationId": "getListTemplates",
                "x-required-scopes": [
                    "lists:read"
                ],
                "x-feature-flag": "lists",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "parent_entity_type",
                        "in": "query",
                        "required": false,
                        "description": "event_participant (default), event or contact",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "is_active",
                        "in": "query",
                        "required": false,
                        "description": "Default: active entries only; 0 = only inactive, all = every entry",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/ListTemplates"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "template_key": "string",
                                            "name": "string",
                                            "description": "string",
                                            "parent_entity_type": "string",
                                            "category_keys": [],
                                            "event_keys": [],
                                            "exhibitor_access": "string",
                                            "min_entries": 1,
                                            "max_entries": 1,
                                            "is_active": true,
                                            "entry_count": 1,
                                            "fields": []
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/list-templates/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "list-templates"
                ],
                "summary": "Retrieve a single list template with its fields",
                "operationId": "getListTemplatesById",
                "x-required-scopes": [
                    "lists:read"
                ],
                "x-feature-flag": "lists",
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/ListTemplates"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "template_key": "string",
                                        "name": "string",
                                        "description": "string",
                                        "parent_entity_type": "string",
                                        "category_keys": [],
                                        "event_keys": [],
                                        "exhibitor_access": "string",
                                        "min_entries": 1,
                                        "max_entries": 1,
                                        "is_active": true,
                                        "entry_count": 1,
                                        "fields": []
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/list-entries": {
            "get": {
                "tags": [
                    "list-entries"
                ],
                "summary": "List the entries of a list (template_id or template_key is required)",
                "operationId": "getListEntries",
                "x-required-scopes": [
                    "lists:read"
                ],
                "x-feature-flag": "lists",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "template_id",
                        "in": "query",
                        "required": false,
                        "description": "ID of the list (alternatively template_key)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "template_key",
                        "in": "query",
                        "required": false,
                        "description": "Key of the list, together with parent_entity_type",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "parent_entity_type",
                        "in": "query",
                        "required": false,
                        "description": "event_participant (default), event or contact",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "parent_entity_id",
                        "in": "query",
                        "required": false,
                        "description": "Only the entries of this participant, event or contact",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "event_key",
                        "in": "query",
                        "required": false,
                        "description": "Participant lists only: the entries of all participants of this event",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "required": false,
                        "description": "Search in the values",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/ListEntries"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "template_id": 1,
                                            "template_key": "string",
                                            "parent_entity_type": "string",
                                            "parent_entity_id": 1,
                                            "values": {},
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "post": {
                "tags": [
                    "list-entries"
                ],
                "summary": "Add an entry",
                "operationId": "postListEntries",
                "x-required-scopes": [
                    "lists:write"
                ],
                "x-feature-flag": "lists",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ListEntriesCreateInput"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created; data.id is the ID of the new record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": true,
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/list-entries/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "list-entries"
                ],
                "summary": "Retrieve a single entry",
                "operationId": "getListEntriesById",
                "x-required-scopes": [
                    "lists:read"
                ],
                "x-feature-flag": "lists",
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/ListEntries"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "template_id": 1,
                                        "template_key": "string",
                                        "parent_entity_type": "string",
                                        "parent_entity_id": 1,
                                        "values": {},
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "put": {
                "tags": [
                    "list-entries"
                ],
                "summary": "Change the given values of an entry (the others stay)",
                "operationId": "putListEntriesById",
                "x-required-scopes": [
                    "lists:write"
                ],
                "x-feature-flag": "lists",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ListEntriesInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/ListEntries"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "template_id": 1,
                                        "template_key": "string",
                                        "parent_entity_type": "string",
                                        "parent_entity_id": 1,
                                        "values": {},
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "patch": {
                "tags": [
                    "list-entries"
                ],
                "summary": "Change the given values of an entry (the others stay)",
                "operationId": "patchListEntriesById",
                "x-required-scopes": [
                    "lists:write"
                ],
                "x-feature-flag": "lists",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ListEntriesInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/ListEntries"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "template_id": 1,
                                        "template_key": "string",
                                        "parent_entity_type": "string",
                                        "parent_entity_id": 1,
                                        "values": {},
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "delete": {
                "tags": [
                    "list-entries"
                ],
                "summary": "Delete an entry",
                "operationId": "deleteListEntriesById",
                "x-required-scopes": [
                    "lists:write"
                ],
                "x-feature-flag": "lists",
                "responses": {
                    "204": {
                        "description": "Deleted (no content)"
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/newsletter": {
            "get": {
                "tags": [
                    "newsletter"
                ],
                "summary": "List all subscribers",
                "operationId": "getNewsletter",
                "x-required-scopes": [
                    "newsletter:read"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "required": false,
                        "description": "Search term to filter results",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "description": "Filter by subscriber status (confirmed, pending, unsubscribed)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "from_date",
                        "in": "query",
                        "required": false,
                        "description": "Filter subscribers from this date (ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "to_date",
                        "in": "query",
                        "required": false,
                        "description": "Filter subscribers until this date (ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "description": "Sort field (email, name, created_at, confirmed_at)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "query",
                        "required": false,
                        "description": "Sort direction (ASC or DESC, default: DESC)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Newsletter"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "email": "string",
                                            "name": "string",
                                            "contact_id": 1,
                                            "status": "string",
                                            "confirmed_at": "2026-01-15T10:00:00+01:00",
                                            "unsubscribed_at": "2026-01-15T10:00:00+01:00",
                                            "created_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "post": {
                "tags": [
                    "newsletter"
                ],
                "summary": "Subscribe an email address",
                "operationId": "postNewsletter",
                "x-required-scopes": [
                    "newsletter:write"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/NewsletterCreateInput"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created; data.id is the ID of the new record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": true,
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "delete": {
                "tags": [
                    "newsletter"
                ],
                "summary": "Unsubscribe by email address",
                "operationId": "deleteNewsletter",
                "x-required-scopes": [
                    "newsletter:write"
                ],
                "responses": {
                    "204": {
                        "description": "Deleted (no content)"
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/newsletter/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "delete": {
                "tags": [
                    "newsletter"
                ],
                "summary": "Unsubscribe by subscriber ID",
                "operationId": "deleteNewsletterById",
                "x-required-scopes": [
                    "newsletter:write"
                ],
                "responses": {
                    "204": {
                        "description": "Deleted (no content)"
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/notes": {
            "get": {
                "tags": [
                    "notes"
                ],
                "summary": "List all notes",
                "operationId": "getNotes",
                "description": "The required scope depends on the entity type: contact notes require the \"contacts\" scope, application notes require \"applications\", etc. Notes on other entity types (e.g. booths or tasks) are not accessible through the API (404). A key acts for the admin who created it: it can change or delete only notes written by that admin, unless that admin is a super admin (403 otherwise). Reading and pinning work for every note; \"can_modify\" tells whether the key may change a note.",
                "x-required-scopes": [
                    "contacts:read",
                    "applications:read",
                    "participants:read",
                    "invoices:read",
                    "events:read"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "entity_type",
                        "in": "query",
                        "required": true,
                        "description": "Entity type (required: contact, application, event_participant, invoice, event)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "entity_id",
                        "in": "query",
                        "required": true,
                        "description": "Entity ID (required)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "note_type",
                        "in": "query",
                        "required": false,
                        "description": "Filter by note type (info, warning, followup, internal)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "is_pinned",
                        "in": "query",
                        "required": false,
                        "description": "Filter by pinned status (1)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Notes"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "entity_type": "string",
                                            "entity_id": 1,
                                            "admin_id": 1,
                                            "admin_name": "string",
                                            "note_text": "string",
                                            "note_type": "string",
                                            "is_pinned": true,
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1,
                                        "entity_type": "contact",
                                        "entity_id": 123
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "post": {
                "tags": [
                    "notes"
                ],
                "summary": "Create a new note",
                "operationId": "postNotes",
                "description": "The required scope depends on the entity type: contact notes require the \"contacts\" scope, application notes require \"applications\", etc. Notes on other entity types (e.g. booths or tasks) are not accessible through the API (404). A key acts for the admin who created it: it can change or delete only notes written by that admin, unless that admin is a super admin (403 otherwise). Reading and pinning work for every note; \"can_modify\" tells whether the key may change a note.",
                "x-required-scopes": [
                    "contacts:write",
                    "applications:write",
                    "participants:write",
                    "invoices:write",
                    "events:write"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/NotesCreateInput"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created; data.id is the ID of the new record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": true,
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/notes/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "notes"
                ],
                "summary": "Retrieve a single note",
                "operationId": "getNotesById",
                "description": "The required scope depends on the entity type: contact notes require the \"contacts\" scope, application notes require \"applications\", etc. Notes on other entity types (e.g. booths or tasks) are not accessible through the API (404). A key acts for the admin who created it: it can change or delete only notes written by that admin, unless that admin is a super admin (403 otherwise). Reading and pinning work for every note; \"can_modify\" tells whether the key may change a note.",
                "x-required-scopes": [
                    "contacts:read",
                    "applications:read",
                    "participants:read",
                    "invoices:read",
                    "events:read"
                ],
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Notes"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "entity_type": "string",
                                        "entity_id": 1,
                                        "admin_id": 1,
                                        "admin_name": "string",
                                        "note_text": "string",
                                        "note_type": "string",
                                        "is_pinned": true,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "put": {
                "tags": [
                    "notes"
                ],
                "summary": "Update a note",
                "operationId": "putNotesById",
                "description": "The required scope depends on the entity type: contact notes require the \"contacts\" scope, application notes require \"applications\", etc. Notes on other entity types (e.g. booths or tasks) are not accessible through the API (404). A key acts for the admin who created it: it can change or delete only notes written by that admin, unless that admin is a super admin (403 otherwise). Reading and pinning work for every note; \"can_modify\" tells whether the key may change a note.",
                "x-required-scopes": [
                    "contacts:write",
                    "applications:write",
                    "participants:write",
                    "invoices:write",
                    "events:write"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/NotesInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Notes"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "entity_type": "string",
                                        "entity_id": 1,
                                        "admin_id": 1,
                                        "admin_name": "string",
                                        "note_text": "string",
                                        "note_type": "string",
                                        "is_pinned": true,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "patch": {
                "tags": [
                    "notes"
                ],
                "summary": "Update a note",
                "operationId": "patchNotesById",
                "description": "The required scope depends on the entity type: contact notes require the \"contacts\" scope, application notes require \"applications\", etc. Notes on other entity types (e.g. booths or tasks) are not accessible through the API (404). A key acts for the admin who created it: it can change or delete only notes written by that admin, unless that admin is a super admin (403 otherwise). Reading and pinning work for every note; \"can_modify\" tells whether the key may change a note.",
                "x-required-scopes": [
                    "contacts:write",
                    "applications:write",
                    "participants:write",
                    "invoices:write",
                    "events:write"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/NotesInput"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Notes"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "entity_type": "string",
                                        "entity_id": 1,
                                        "admin_id": 1,
                                        "admin_name": "string",
                                        "note_text": "string",
                                        "note_type": "string",
                                        "is_pinned": true,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "delete": {
                "tags": [
                    "notes"
                ],
                "summary": "Delete a note",
                "operationId": "deleteNotesById",
                "description": "The required scope depends on the entity type: contact notes require the \"contacts\" scope, application notes require \"applications\", etc. Notes on other entity types (e.g. booths or tasks) are not accessible through the API (404). A key acts for the admin who created it: it can change or delete only notes written by that admin, unless that admin is a super admin (403 otherwise). Reading and pinning work for every note; \"can_modify\" tells whether the key may change a note.",
                "x-required-scopes": [
                    "contacts:write",
                    "applications:write",
                    "participants:write",
                    "invoices:write",
                    "events:write"
                ],
                "responses": {
                    "204": {
                        "description": "Deleted (no content)"
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/notes/{id}/pin": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "post": {
                "tags": [
                    "notes"
                ],
                "summary": "Toggle pin status of a note",
                "operationId": "postNotesByIdPin",
                "description": "The required scope depends on the entity type: contact notes require the \"contacts\" scope, application notes require \"applications\", etc. Notes on other entity types (e.g. booths or tasks) are not accessible through the API (404). A key acts for the admin who created it: it can change or delete only notes written by that admin, unless that admin is a super admin (403 otherwise). Reading and pinning work for every note; \"can_modify\" tells whether the key may change a note.",
                "x-required-scopes": [
                    "contacts:write",
                    "applications:write",
                    "participants:write",
                    "invoices:write",
                    "events:write"
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "additionalProperties": true
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Result of the action",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "description": "Result of the action"
                                        }
                                    },
                                    "additionalProperties": true
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/schedules": {
            "get": {
                "tags": [
                    "schedules"
                ],
                "summary": "List all schedule entries",
                "operationId": "getSchedules",
                "x-required-scopes": [
                    "schedules:read"
                ],
                "x-feature-flag": "schedules",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "event_key",
                        "in": "query",
                        "required": false,
                        "description": "Filter by event key (required)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "required": false,
                        "description": "Filter by specific date (ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "from_date",
                        "in": "query",
                        "required": false,
                        "description": "Filter entries from this date (ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "to_date",
                        "in": "query",
                        "required": false,
                        "description": "Filter entries until this date (ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "location",
                        "in": "query",
                        "required": false,
                        "description": "Filter by location name",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "slot_type",
                        "in": "query",
                        "required": false,
                        "description": "Filter by slot type",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "is_public",
                        "in": "query",
                        "required": false,
                        "description": "Filter by public visibility (0 or 1)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "required": false,
                        "description": "Include related data (assignments)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Schedules"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "event_id": 1,
                                            "event_title": "string",
                                            "slot_date": "2026-01-15T10:00:00+01:00",
                                            "start_time": "string",
                                            "end_time": "string",
                                            "location": "string",
                                            "title": "string",
                                            "description": "string",
                                            "slot_type": "string",
                                            "is_public": true,
                                            "show_in_public_agenda": true,
                                            "sort_order": 1,
                                            "created_at": "2026-01-15T10:00:00+01:00",
                                            "updated_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/schedules/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "schedules"
                ],
                "summary": "Retrieve a single entry",
                "operationId": "getSchedulesById",
                "x-required-scopes": [
                    "schedules:read"
                ],
                "x-feature-flag": "schedules",
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Schedules"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "event_id": 1,
                                        "event_title": "string",
                                        "slot_date": "2026-01-15T10:00:00+01:00",
                                        "start_time": "string",
                                        "end_time": "string",
                                        "location": "string",
                                        "title": "string",
                                        "description": "string",
                                        "slot_type": "string",
                                        "is_public": true,
                                        "show_in_public_agenda": true,
                                        "sort_order": 1,
                                        "created_at": "2026-01-15T10:00:00+01:00",
                                        "updated_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/webhooks": {
            "get": {
                "tags": [
                    "webhooks"
                ],
                "summary": "List all webhooks",
                "operationId": "getWebhooks",
                "x-required-scopes": [
                    "webhooks:read"
                ],
                "x-feature-flag": "webhooks",
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Webhooks"
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "name": "string",
                                            "url": "string",
                                            "events": [],
                                            "is_active": true,
                                            "retry_count": 1,
                                            "timeout_seconds": 1,
                                            "last_triggered_at": "2026-01-15T10:00:00+01:00",
                                            "last_success_at": "2026-01-15T10:00:00+01:00",
                                            "last_failure_at": "2026-01-15T10:00:00+01:00",
                                            "failure_count": 1,
                                            "secret": "string",
                                            "created_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ]
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "post": {
                "tags": [
                    "webhooks"
                ],
                "summary": "Create a new webhook",
                "operationId": "postWebhooks",
                "x-required-scopes": [
                    "webhooks:write"
                ],
                "x-feature-flag": "webhooks",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/WebhooksCreateInput"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "description": "Created; data.id is the ID of the new record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "object",
                                            "additionalProperties": true,
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/webhooks/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "webhooks"
                ],
                "summary": "Retrieve a single webhook",
                "operationId": "getWebhooksById",
                "x-required-scopes": [
                    "webhooks:read"
                ],
                "x-feature-flag": "webhooks",
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Webhooks"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "name": "string",
                                        "url": "string",
                                        "events": [],
                                        "is_active": true,
                                        "retry_count": 1,
                                        "timeout_seconds": 1,
                                        "last_triggered_at": "2026-01-15T10:00:00+01:00",
                                        "last_success_at": "2026-01-15T10:00:00+01:00",
                                        "last_failure_at": "2026-01-15T10:00:00+01:00",
                                        "failure_count": 1,
                                        "secret": "string",
                                        "created_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            },
            "delete": {
                "tags": [
                    "webhooks"
                ],
                "summary": "Delete a webhook",
                "operationId": "deleteWebhooksById",
                "x-required-scopes": [
                    "webhooks:write"
                ],
                "x-feature-flag": "webhooks",
                "responses": {
                    "204": {
                        "description": "Deleted (no content)"
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/webhooks/events": {
            "get": {
                "tags": [
                    "webhooks"
                ],
                "summary": "List available event types",
                "operationId": "getWebhooksEvents",
                "x-required-scopes": [
                    "webhooks:read"
                ],
                "x-feature-flag": "webhooks",
                "responses": {
                    "200": {
                        "description": "Result of the action",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "description": "Result of the action"
                                        }
                                    },
                                    "additionalProperties": true
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/reports/revenue": {
            "get": {
                "tags": [
                    "reports"
                ],
                "summary": "Get revenue report",
                "operationId": "getReportsRevenue",
                "x-required-scopes": [
                    "reports:read"
                ],
                "parameters": [
                    {
                        "name": "event_key",
                        "in": "query",
                        "required": false,
                        "description": "Filter by event key",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "required": false,
                        "description": "Report start date (ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "required": false,
                        "description": "Report end date (ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Result of the action",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "description": "Result of the action"
                                        }
                                    },
                                    "additionalProperties": true
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/reports/participants": {
            "get": {
                "tags": [
                    "reports"
                ],
                "summary": "Get participants report",
                "operationId": "getReportsParticipants",
                "x-required-scopes": [
                    "reports:read"
                ],
                "parameters": [
                    {
                        "name": "event_key",
                        "in": "query",
                        "required": true,
                        "description": "Filter by event key",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "required": false,
                        "description": "Report start date (ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "required": false,
                        "description": "Report end date (ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Result of the action",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "description": "Result of the action"
                                        }
                                    },
                                    "additionalProperties": true
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/reports/applications": {
            "get": {
                "tags": [
                    "reports"
                ],
                "summary": "Get applications report",
                "operationId": "getReportsApplications",
                "x-required-scopes": [
                    "reports:read"
                ],
                "parameters": [
                    {
                        "name": "event_key",
                        "in": "query",
                        "required": false,
                        "description": "Filter by event key",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "required": false,
                        "description": "Report start date (ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "required": false,
                        "description": "Report end date (ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Result of the action",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "description": "Result of the action"
                                        }
                                    },
                                    "additionalProperties": true
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/reports/payments": {
            "get": {
                "tags": [
                    "reports"
                ],
                "summary": "Get payments report",
                "operationId": "getReportsPayments",
                "x-required-scopes": [
                    "reports:read"
                ],
                "parameters": [
                    {
                        "name": "event_key",
                        "in": "query",
                        "required": false,
                        "description": "Filter by event key",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "required": false,
                        "description": "Report start date (ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "required": false,
                        "description": "Report end date (ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Result of the action",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "description": "Result of the action"
                                        }
                                    },
                                    "additionalProperties": true
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/reports/overview": {
            "get": {
                "tags": [
                    "reports"
                ],
                "summary": "Get overview report (participant statistics are only included with event_key, otherwise null)",
                "operationId": "getReportsOverview",
                "x-required-scopes": [
                    "reports:read"
                ],
                "parameters": [
                    {
                        "name": "event_key",
                        "in": "query",
                        "required": false,
                        "description": "Filter by event key",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "required": false,
                        "description": "Report start date (ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "required": false,
                        "description": "Report end date (ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Result of the action",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "description": "Result of the action"
                                        }
                                    },
                                    "additionalProperties": true
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/audit-log": {
            "get": {
                "tags": [
                    "audit-log"
                ],
                "summary": "List all log entries",
                "operationId": "getAuditLog",
                "x-required-scopes": [
                    "audit:read"
                ],
                "parameters": [
                    {
                        "$ref": "#/components/parameters/page"
                    },
                    {
                        "$ref": "#/components/parameters/per_page"
                    },
                    {
                        "name": "action",
                        "in": "query",
                        "required": false,
                        "description": "Filter by action type",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "entity_type",
                        "in": "query",
                        "required": false,
                        "description": "Filter by entity type",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "admin_id",
                        "in": "query",
                        "required": false,
                        "description": "Filter by administrator ID",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "required": false,
                        "description": "Filter entries from this date (ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "required": false,
                        "description": "Filter entries until this date (ISO 8601)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "required": false,
                        "description": "Search term to filter results",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "One page of records",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/AuditLog"
                                            }
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "action": "string",
                                            "entity_type": "string",
                                            "entity_id": 1,
                                            "entity_title": "string",
                                            "description": "string",
                                            "old_values": {},
                                            "new_values": {},
                                            "admin_id": 1,
                                            "admin_name": "string",
                                            "ip_address": "string",
                                            "user_agent": "string",
                                            "created_at": "2026-01-15T10:00:00+01:00"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "per_page": 25,
                                        "total": 1,
                                        "total_pages": 1
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/audit-log/{id}": {
            "parameters": [
                {
                    "name": "id",
                    "in": "path",
                    "required": true,
                    "description": "Numeric ID of the record",
                    "schema": {
                        "type": "integer",
                        "minimum": 1
                    }
                }
            ],
            "get": {
                "tags": [
                    "audit-log"
                ],
                "summary": "Retrieve a single entry",
                "operationId": "getAuditLogById",
                "x-required-scopes": [
                    "audit:read"
                ],
                "responses": {
                    "200": {
                        "description": "The record",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "data"
                                    ],
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/AuditLog"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "action": "string",
                                        "entity_type": "string",
                                        "entity_id": 1,
                                        "entity_title": "string",
                                        "description": "string",
                                        "old_values": {},
                                        "new_values": {},
                                        "admin_id": 1,
                                        "admin_name": "string",
                                        "ip_address": "string",
                                        "user_agent": "string",
                                        "created_at": "2026-01-15T10:00:00+01:00"
                                    }
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/calendar-feed": {
            "get": {
                "tags": [
                    "calendar"
                ],
                "summary": "Get iCal calendar feed",
                "operationId": "getCalendarFeed",
                "x-required-scopes": [
                    "calendar-feed:read"
                ],
                "responses": {
                    "200": {
                        "description": "The file",
                        "content": {
                            "text/calendar": {
                                "schema": {
                                    "type": "string",
                                    "format": "text"
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/bulk-import/contacts": {
            "post": {
                "tags": [
                    "bulk-import"
                ],
                "summary": "Import contacts",
                "operationId": "postBulkImportContacts",
                "description": "The /contacts endpoint requires the \"contacts\" scope, the /participants endpoint requires the \"participants\" scope.",
                "x-required-scopes": [
                    "contacts:write",
                    "participants:write"
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "additionalProperties": true
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Result of the action",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "description": "Result of the action"
                                        }
                                    },
                                    "additionalProperties": true
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        },
        "/api/v1/bulk-import/participants": {
            "post": {
                "tags": [
                    "bulk-import"
                ],
                "summary": "Import participants",
                "operationId": "postBulkImportParticipants",
                "description": "The /contacts endpoint requires the \"contacts\" scope, the /participants endpoint requires the \"participants\" scope.",
                "x-required-scopes": [
                    "contacts:write",
                    "participants:write"
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "additionalProperties": true
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Result of the action",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "description": "Result of the action"
                                        }
                                    },
                                    "additionalProperties": true
                                }
                            }
                        }
                    },
                    "400": {
                        "$ref": "#/components/responses/BadRequest"
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "403": {
                        "$ref": "#/components/responses/Forbidden"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    },
                    "422": {
                        "$ref": "#/components/responses/ValidationFailed"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooManyRequests"
                    }
                }
            }
        }
    },
    "components": {
        "securitySchemes": {
            "bearerAuth": {
                "type": "http",
                "scheme": "bearer",
                "description": "API key as bearer token: Authorization: Bearer YOUR_API_KEY"
            },
            "apiKeyHeader": {
                "type": "apiKey",
                "in": "header",
                "name": "X-API-Key",
                "description": "Alternatively the API key in the X-API-Key header"
            }
        },
        "schemas": {
            "Error": {
                "type": "object",
                "required": [
                    "error"
                ],
                "properties": {
                    "error": {
                        "type": "string",
                        "description": "Readable error message"
                    }
                }
            },
            "ValidationError": {
                "type": "object",
                "required": [
                    "error",
                    "errors"
                ],
                "properties": {
                    "error": {
                        "type": "string",
                        "description": "Readable error message"
                    },
                    "errors": {
                        "type": "object",
                        "description": "Messages per field",
                        "additionalProperties": {
                            "oneOf": [
                                {
                                    "type": "string"
                                },
                                {
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                }
                            ]
                        }
                    }
                }
            },
            "PaginationMeta": {
                "type": "object",
                "additionalProperties": true,
                "required": [
                    "current_page",
                    "per_page",
                    "total",
                    "total_pages"
                ],
                "properties": {
                    "current_page": {
                        "type": "integer",
                        "minimum": 1
                    },
                    "per_page": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 100
                    },
                    "total": {
                        "type": "integer",
                        "minimum": 0
                    },
                    "total_pages": {
                        "type": "integer",
                        "minimum": 0
                    }
                }
            },
            "Events": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "event_key": {
                        "type": "string"
                    },
                    "title": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "country": {
                        "type": "string"
                    },
                    "state": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "city": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "date_from": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "date_to": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "application_deadline": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "is_visible": {
                        "type": "boolean"
                    },
                    "image": {
                        "type": [
                            "object",
                            "null"
                        ]
                    }
                },
                "additionalProperties": true
            },
            "EventsInput": {
                "type": "object",
                "properties": {
                    "title": {
                        "type": "string",
                        "description": "Name of the event"
                    },
                    "event_key": {
                        "type": "string",
                        "description": "Unique identifier for the event: letters, digits, \"_\" and \"-\", max. 100 characters (auto-generated if omitted). When it is changed via PUT/PATCH, all references (forms, sections, fields, categories, services, etc.) are switched to the new key. A key that is already taken (also by an event in the trash) returns 422"
                    },
                    "description": {
                        "type": "string",
                        "description": "Event description"
                    },
                    "date_from": {
                        "type": "string",
                        "description": "Start date (ISO 8601 format)"
                    },
                    "date_to": {
                        "type": "string",
                        "description": "End date (ISO 8601 format)"
                    },
                    "country": {
                        "type": "string",
                        "description": "Country code (default: DE)"
                    },
                    "state": {
                        "type": "string",
                        "description": "State or region"
                    },
                    "city": {
                        "type": "string",
                        "description": "City name"
                    },
                    "application_deadline": {
                        "type": "string",
                        "description": "Application deadline (ISO 8601 format)"
                    },
                    "is_visible": {
                        "type": "boolean",
                        "description": "Whether the event is publicly visible"
                    },
                    "opening_hours": {
                        "type": "array",
                        "items": {},
                        "description": "Array of opening hour entries"
                    }
                }
            },
            "EventsCreateInput": {
                "type": "object",
                "properties": {
                    "title": {
                        "type": "string",
                        "description": "Name of the event"
                    },
                    "event_key": {
                        "type": "string",
                        "description": "Unique identifier for the event: letters, digits, \"_\" and \"-\", max. 100 characters (auto-generated if omitted). When it is changed via PUT/PATCH, all references (forms, sections, fields, categories, services, etc.) are switched to the new key. A key that is already taken (also by an event in the trash) returns 422"
                    },
                    "description": {
                        "type": "string",
                        "description": "Event description"
                    },
                    "date_from": {
                        "type": "string",
                        "description": "Start date (ISO 8601 format)"
                    },
                    "date_to": {
                        "type": "string",
                        "description": "End date (ISO 8601 format)"
                    },
                    "country": {
                        "type": "string",
                        "description": "Country code (default: DE)"
                    },
                    "state": {
                        "type": "string",
                        "description": "State or region"
                    },
                    "city": {
                        "type": "string",
                        "description": "City name"
                    },
                    "application_deadline": {
                        "type": "string",
                        "description": "Application deadline (ISO 8601 format)"
                    },
                    "is_visible": {
                        "type": "boolean",
                        "description": "Whether the event is publicly visible"
                    },
                    "opening_hours": {
                        "type": "array",
                        "items": {},
                        "description": "Array of opening hour entries"
                    }
                },
                "required": [
                    "title"
                ]
            },
            "Contacts": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "customer_number": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "company_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "first_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "last_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "address": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "postal_code": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "city": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "country": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "state": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "phone": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "fax": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "mobile": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "email": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "website": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "notes": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "tax_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "rating": {
                        "type": "integer"
                    },
                    "account_access_enabled": {
                        "type": "boolean"
                    },
                    "has_account": {
                        "type": "boolean"
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "ContactsInput": {
                "type": "object",
                "properties": {
                    "email": {
                        "type": "string",
                        "description": "Email address"
                    },
                    "company_name": {
                        "type": "string",
                        "description": "Company name"
                    },
                    "first_name": {
                        "type": "string",
                        "description": "First name"
                    },
                    "last_name": {
                        "type": "string",
                        "description": "Last name"
                    },
                    "phone": {
                        "type": "string",
                        "description": "Phone number"
                    },
                    "fax": {
                        "type": "string",
                        "description": "Fax number"
                    },
                    "mobile": {
                        "type": "string",
                        "description": "Mobile phone number"
                    },
                    "customer_number": {
                        "type": "string",
                        "description": "Customer number"
                    },
                    "address": {
                        "type": "string",
                        "description": "Street address"
                    },
                    "postal_code": {
                        "type": "string",
                        "description": "Postal code"
                    },
                    "city": {
                        "type": "string",
                        "description": "City"
                    },
                    "country": {
                        "type": "string",
                        "description": "Country code"
                    },
                    "state": {
                        "type": "string",
                        "description": "State or region"
                    },
                    "website": {
                        "type": "string",
                        "description": "Website URL"
                    },
                    "notes": {
                        "type": "string",
                        "description": "Internal notes"
                    },
                    "tax_id": {
                        "type": "string",
                        "description": "Tax identification number"
                    },
                    "rating": {
                        "type": "integer",
                        "description": "Contact rating (1-5, default: 3)"
                    },
                    "account_access_enabled": {
                        "type": "boolean",
                        "description": "Whether the contact can access the account portal"
                    },
                    "category_keys": {
                        "type": "array",
                        "items": {},
                        "description": "Array of category keys to assign"
                    },
                    "event_keys": {
                        "type": "array",
                        "items": {},
                        "description": "Array of event keys to link as participant"
                    }
                }
            },
            "ContactsCreateInput": {
                "type": "object",
                "properties": {
                    "email": {
                        "type": "string",
                        "description": "Email address"
                    },
                    "company_name": {
                        "type": "string",
                        "description": "Company name"
                    },
                    "first_name": {
                        "type": "string",
                        "description": "First name"
                    },
                    "last_name": {
                        "type": "string",
                        "description": "Last name"
                    },
                    "phone": {
                        "type": "string",
                        "description": "Phone number"
                    },
                    "fax": {
                        "type": "string",
                        "description": "Fax number"
                    },
                    "mobile": {
                        "type": "string",
                        "description": "Mobile phone number"
                    },
                    "customer_number": {
                        "type": "string",
                        "description": "Customer number"
                    },
                    "address": {
                        "type": "string",
                        "description": "Street address"
                    },
                    "postal_code": {
                        "type": "string",
                        "description": "Postal code"
                    },
                    "city": {
                        "type": "string",
                        "description": "City"
                    },
                    "country": {
                        "type": "string",
                        "description": "Country code"
                    },
                    "state": {
                        "type": "string",
                        "description": "State or region"
                    },
                    "website": {
                        "type": "string",
                        "description": "Website URL"
                    },
                    "notes": {
                        "type": "string",
                        "description": "Internal notes"
                    },
                    "tax_id": {
                        "type": "string",
                        "description": "Tax identification number"
                    },
                    "rating": {
                        "type": "integer",
                        "description": "Contact rating (1-5, default: 3)"
                    },
                    "account_access_enabled": {
                        "type": "boolean",
                        "description": "Whether the contact can access the account portal"
                    },
                    "category_keys": {
                        "type": "array",
                        "items": {},
                        "description": "Array of category keys to assign"
                    },
                    "event_keys": {
                        "type": "array",
                        "items": {},
                        "description": "Array of event keys to link as participant"
                    }
                }
            },
            "Participants": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "event_id": {
                        "type": "integer"
                    },
                    "contact_id": {
                        "type": "integer"
                    },
                    "is_confirmed": {
                        "type": "boolean"
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "ParticipantsInput": {
                "type": "object",
                "properties": {
                    "event_key": {
                        "type": "string",
                        "description": "Event key to identify the event"
                    },
                    "customer_number": {
                        "type": "string",
                        "description": "Customer number to identify the contact"
                    },
                    "is_confirmed": {
                        "type": "boolean",
                        "description": "Whether the participation is confirmed"
                    }
                }
            },
            "ParticipantsCreateInput": {
                "type": "object",
                "properties": {
                    "event_key": {
                        "type": "string",
                        "description": "Event key to identify the event"
                    },
                    "customer_number": {
                        "type": "string",
                        "description": "Customer number to identify the contact"
                    },
                    "is_confirmed": {
                        "type": "boolean",
                        "description": "Whether the participation is confirmed"
                    }
                },
                "required": [
                    "event_key",
                    "customer_number"
                ]
            },
            "Applications": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "company_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "first_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "last_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "address": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "postal_code": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "city": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "country": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "state": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "phone": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "fax": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "mobile": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "email": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "website": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "notes": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "tax_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "rating": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "ApplicationsInput": {
                "type": "object",
                "properties": {
                    "company_name": {
                        "type": "string",
                        "description": "Company name"
                    },
                    "first_name": {
                        "type": "string",
                        "description": "First name"
                    },
                    "last_name": {
                        "type": "string",
                        "description": "Last name"
                    },
                    "email": {
                        "type": "string",
                        "description": "Email address"
                    },
                    "phone": {
                        "type": "string",
                        "description": "Phone number"
                    },
                    "address": {
                        "type": "string",
                        "description": "Street address"
                    },
                    "postal_code": {
                        "type": "string",
                        "description": "Postal code"
                    },
                    "city": {
                        "type": "string",
                        "description": "City"
                    },
                    "country": {
                        "type": "string",
                        "description": "Country code"
                    },
                    "website": {
                        "type": "string",
                        "description": "Website URL"
                    },
                    "tax_id": {
                        "type": "string",
                        "description": "Tax identification number"
                    },
                    "rating": {
                        "type": "integer",
                        "description": "Application rating (1-5)"
                    }
                }
            },
            "Categories": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "category_key": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "title": {
                        "type": "string"
                    },
                    "content": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "parent_category_id": {
                        "type": "integer"
                    },
                    "event_keys": {
                        "type": [
                            "array",
                            "null"
                        ],
                        "items": {}
                    },
                    "is_visible": {
                        "type": "boolean"
                    },
                    "applicant_visibility": {
                        "type": "string"
                    },
                    "account_access_enabled": {
                        "type": "boolean"
                    },
                    "sort_order": {
                        "type": "integer"
                    },
                    "level": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "CategoriesInput": {
                "type": "object",
                "properties": {
                    "title": {
                        "type": "string",
                        "description": "Category name (required)"
                    },
                    "category_key": {
                        "type": "string",
                        "description": "Unique key: lowercase letters, digits, \"_\" and \"-\", max. 100 characters (auto-generated if omitted). When it is changed via PUT/PATCH, all references (forms, sections, fields, services, etc.) are switched to the new key; on delete the key is removed from these restrictions (a record with no category left then applies to all categories). A key that is already taken returns 422"
                    },
                    "parent_category_id": {
                        "type": "integer",
                        "description": "Parent category ID for nesting"
                    },
                    "content": {
                        "type": "string",
                        "description": "Category description or content"
                    },
                    "event_keys": {
                        "type": "array",
                        "items": {},
                        "description": "Array of event keys to associate"
                    },
                    "is_visible": {
                        "type": "boolean",
                        "description": "Whether the category is visible (default: true)"
                    },
                    "applicant_visibility": {
                        "type": "string",
                        "description": "Visibility for applicants (selectable, container, admin_only)"
                    },
                    "account_access_enabled": {
                        "type": "boolean",
                        "description": "Whether the category is available in the account portal (default: true)"
                    },
                    "sort_order": {
                        "type": "integer",
                        "description": "Display order (default: 0)"
                    }
                }
            },
            "CategoriesCreateInput": {
                "type": "object",
                "properties": {
                    "title": {
                        "type": "string",
                        "description": "Category name (required)"
                    },
                    "category_key": {
                        "type": "string",
                        "description": "Unique key: lowercase letters, digits, \"_\" and \"-\", max. 100 characters (auto-generated if omitted). When it is changed via PUT/PATCH, all references (forms, sections, fields, services, etc.) are switched to the new key; on delete the key is removed from these restrictions (a record with no category left then applies to all categories). A key that is already taken returns 422"
                    },
                    "parent_category_id": {
                        "type": "integer",
                        "description": "Parent category ID for nesting"
                    },
                    "content": {
                        "type": "string",
                        "description": "Category description or content"
                    },
                    "event_keys": {
                        "type": "array",
                        "items": {},
                        "description": "Array of event keys to associate"
                    },
                    "is_visible": {
                        "type": "boolean",
                        "description": "Whether the category is visible (default: true)"
                    },
                    "applicant_visibility": {
                        "type": "string",
                        "description": "Visibility for applicants (selectable, container, admin_only)"
                    },
                    "account_access_enabled": {
                        "type": "boolean",
                        "description": "Whether the category is available in the account portal (default: true)"
                    },
                    "sort_order": {
                        "type": "integer",
                        "description": "Display order (default: 0)"
                    }
                },
                "required": [
                    "title"
                ]
            },
            "Invoices": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "invoice_number": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "display_number": {
                        "type": "string"
                    },
                    "invoice_type": {
                        "type": "string"
                    },
                    "related_invoice_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "string"
                    },
                    "event_participant_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "contact_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "invoice_date": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "issued_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "total": {
                        "type": "number"
                    },
                    "currency": {
                        "type": "string"
                    },
                    "credited_amount": {
                        "type": "number"
                    },
                    "paid_amount": {
                        "type": "number"
                    },
                    "written_off_amount": {
                        "type": "number"
                    },
                    "open_amount": {
                        "type": "number"
                    },
                    "service_date": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "due_date": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "is_reverse_charge": {
                        "type": "boolean"
                    },
                    "is_locked": {
                        "type": "boolean"
                    },
                    "locked_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "sent_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "reminder_sent_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "reminder_count": {
                        "type": "integer"
                    },
                    "cancellation_reason": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "e_invoice_format": {
                        "type": "string"
                    },
                    "e_invoice_status": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "leitweg_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "buyer_reference": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "po_number": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "notes": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "links": {
                        "type": "object"
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "InvoicesInput": {
                "type": "object",
                "properties": {
                    "event_participant_id": {
                        "type": "integer",
                        "description": "Create: participation to invoice (one of event_participant_id or contact_id)"
                    },
                    "contact_id": {
                        "type": "integer",
                        "description": "Create: contact to invoice without an event"
                    },
                    "items": {
                        "type": "array",
                        "items": {},
                        "description": "Create: lines [{\"description\", \"quantity\" (default 1), \"unit_price\" (net), \"tax_rate\" (one of your invoice tax rates, default the highest)}]"
                    },
                    "include_billable_items": {
                        "type": "boolean",
                        "description": "Create: add the participation's open billable items (booth, service orders, documents). Default: true when no items are given"
                    },
                    "billable_item_ids": {
                        "type": "array",
                        "items": {},
                        "description": "Create: only these open billable items"
                    },
                    "due_date": {
                        "type": "string",
                        "description": "Due date (YYYY-MM-DD or ISO 8601). Default on create: invoice date + payment terms"
                    },
                    "service_date": {
                        "type": "string",
                        "description": "Create: service date (YYYY-MM-DD; default the event start)"
                    },
                    "is_reverse_charge": {
                        "type": "boolean",
                        "description": "Create: reverse charge (0 % VAT; only for EU customers with a VAT ID abroad)"
                    },
                    "e_invoice_format": {
                        "type": "string",
                        "description": "Create: none, xrechnung or zugferd"
                    },
                    "leitweg_id": {
                        "type": "string",
                        "description": "Create: Leitweg-ID for public-sector XRechnung recipients"
                    },
                    "buyer_reference": {
                        "type": "string",
                        "description": "Create: buyer reference (BT-10) when there is no Leitweg-ID"
                    },
                    "issue": {
                        "type": "boolean",
                        "description": "Create: issue the invoice right away (number + invoice date)"
                    },
                    "invoice_date": {
                        "type": "string",
                        "description": "Create with issue / POST issue: invoice date (YYYY-MM-DD, default today)"
                    },
                    "send": {
                        "type": "boolean",
                        "description": "Create: issue and e-mail the invoice right away (to = billing e-mail or \"send_to\")"
                    },
                    "status": {
                        "type": "string",
                        "description": "PATCH only: \"sent\" issues a draft, \"cancelled\" cancels the invoice. Payment states (paid, partially_paid, overdue, refunded) cannot be set (422)"
                    },
                    "notes": {
                        "type": "string",
                        "description": "Internal notes for the invoice"
                    },
                    "reason": {
                        "type": "string",
                        "description": "POST cancel: cancellation reason (required for issued invoices)"
                    },
                    "to": {
                        "type": [
                            "string",
                            "array"
                        ],
                        "items": {},
                        "description": "POST send: recipient address(es); default the billing e-mail of the customer. Also cc, bcc, subject, attach_xml"
                    },
                    "message": {
                        "type": "string",
                        "description": "POST send: personal text inserted after the greeting"
                    }
                }
            },
            "InvoicesCreateInput": {
                "type": "object",
                "properties": {
                    "event_participant_id": {
                        "type": "integer",
                        "description": "Create: participation to invoice (one of event_participant_id or contact_id)"
                    },
                    "contact_id": {
                        "type": "integer",
                        "description": "Create: contact to invoice without an event"
                    },
                    "items": {
                        "type": "array",
                        "items": {},
                        "description": "Create: lines [{\"description\", \"quantity\" (default 1), \"unit_price\" (net), \"tax_rate\" (one of your invoice tax rates, default the highest)}]"
                    },
                    "include_billable_items": {
                        "type": "boolean",
                        "description": "Create: add the participation's open billable items (booth, service orders, documents). Default: true when no items are given"
                    },
                    "billable_item_ids": {
                        "type": "array",
                        "items": {},
                        "description": "Create: only these open billable items"
                    },
                    "due_date": {
                        "type": "string",
                        "description": "Due date (YYYY-MM-DD or ISO 8601). Default on create: invoice date + payment terms"
                    },
                    "service_date": {
                        "type": "string",
                        "description": "Create: service date (YYYY-MM-DD; default the event start)"
                    },
                    "is_reverse_charge": {
                        "type": "boolean",
                        "description": "Create: reverse charge (0 % VAT; only for EU customers with a VAT ID abroad)"
                    },
                    "e_invoice_format": {
                        "type": "string",
                        "description": "Create: none, xrechnung or zugferd"
                    },
                    "leitweg_id": {
                        "type": "string",
                        "description": "Create: Leitweg-ID for public-sector XRechnung recipients"
                    },
                    "buyer_reference": {
                        "type": "string",
                        "description": "Create: buyer reference (BT-10) when there is no Leitweg-ID"
                    },
                    "issue": {
                        "type": "boolean",
                        "description": "Create: issue the invoice right away (number + invoice date)"
                    },
                    "invoice_date": {
                        "type": "string",
                        "description": "Create with issue / POST issue: invoice date (YYYY-MM-DD, default today)"
                    },
                    "send": {
                        "type": "boolean",
                        "description": "Create: issue and e-mail the invoice right away (to = billing e-mail or \"send_to\")"
                    },
                    "status": {
                        "type": "string",
                        "description": "PATCH only: \"sent\" issues a draft, \"cancelled\" cancels the invoice. Payment states (paid, partially_paid, overdue, refunded) cannot be set (422)"
                    },
                    "notes": {
                        "type": "string",
                        "description": "Internal notes for the invoice"
                    },
                    "reason": {
                        "type": "string",
                        "description": "POST cancel: cancellation reason (required for issued invoices)"
                    },
                    "to": {
                        "type": [
                            "string",
                            "array"
                        ],
                        "items": {},
                        "description": "POST send: recipient address(es); default the billing e-mail of the customer. Also cc, bcc, subject, attach_xml"
                    },
                    "message": {
                        "type": "string",
                        "description": "POST send: personal text inserted after the greeting"
                    }
                }
            },
            "CreditNotes": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "invoice_number": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "display_number": {
                        "type": "string"
                    },
                    "invoice_type": {
                        "type": "string"
                    },
                    "related_invoice_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "string"
                    },
                    "event_participant_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "contact_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "invoice_date": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "issued_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "total": {
                        "type": "number"
                    },
                    "currency": {
                        "type": "string"
                    },
                    "credited_amount": {
                        "type": "number"
                    },
                    "paid_amount": {
                        "type": "number"
                    },
                    "written_off_amount": {
                        "type": "number"
                    },
                    "open_amount": {
                        "type": "number"
                    },
                    "service_date": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "due_date": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "is_reverse_charge": {
                        "type": "boolean"
                    },
                    "is_locked": {
                        "type": "boolean"
                    },
                    "locked_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "sent_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "reminder_sent_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "reminder_count": {
                        "type": "integer"
                    },
                    "cancellation_reason": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "e_invoice_format": {
                        "type": "string"
                    },
                    "e_invoice_status": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "leitweg_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "buyer_reference": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "po_number": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "notes": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "links": {
                        "type": "object"
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "Refunds": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": [
                            "integer",
                            "string"
                        ]
                    },
                    "source": {
                        "type": "string"
                    },
                    "payment_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "invoice_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "invoice_number": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "amount": {
                        "type": "number"
                    },
                    "currency": {
                        "type": "string"
                    },
                    "reason": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "gateway": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "gateway_refund_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "string"
                    },
                    "processed_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "PaymentReminders": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "invoice_id": {
                        "type": "integer"
                    },
                    "invoice_number": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "invoice_status": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "event_participant_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "contact_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "reminder_type": {
                        "type": "string"
                    },
                    "reminder_type_label": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "level": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "fee_amount": {
                        "type": "number"
                    },
                    "currency": {
                        "type": "string"
                    },
                    "due_date": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "dunning_stopped": {
                        "type": "boolean"
                    },
                    "sent_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "sent_to": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "sent_via": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "subject": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "template_key": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "show only"
                    },
                    "message_preview": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "show only"
                    }
                },
                "additionalProperties": true
            },
            "Payments": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "invoice_id": {
                        "type": "integer"
                    },
                    "amount": {
                        "type": "number"
                    },
                    "currency": {
                        "type": "string"
                    },
                    "gateway_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "gateway_key": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "gateway_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "transaction_id": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "gateway_fee": {
                        "type": "number"
                    },
                    "net_amount": {
                        "type": "number"
                    },
                    "status": {
                        "type": "string"
                    },
                    "payment_date": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "notes": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "PaymentsInput": {
                "type": "object",
                "properties": {
                    "invoice_number": {
                        "type": "string",
                        "description": "Invoice number to link the payment to (required)"
                    },
                    "amount": {
                        "type": "number",
                        "description": "Payment amount (required, must be positive)"
                    },
                    "currency": {
                        "type": "string",
                        "description": "Currency code (default: invoice currency or EUR)"
                    },
                    "status": {
                        "type": "string",
                        "description": "Payment status (default: completed)"
                    },
                    "payment_date": {
                        "type": "string",
                        "description": "Date of payment (ISO 8601 format, default: now)"
                    },
                    "notes": {
                        "type": "string",
                        "description": "Internal notes for the payment"
                    },
                    "gateway_key": {
                        "type": "string",
                        "description": "Payment gateway identifier"
                    },
                    "transaction_id": {
                        "type": "string",
                        "description": "External transaction ID"
                    }
                }
            },
            "PaymentsCreateInput": {
                "type": "object",
                "properties": {
                    "invoice_number": {
                        "type": "string",
                        "description": "Invoice number to link the payment to (required)"
                    },
                    "amount": {
                        "type": "number",
                        "description": "Payment amount (required, must be positive)"
                    },
                    "currency": {
                        "type": "string",
                        "description": "Currency code (default: invoice currency or EUR)"
                    },
                    "status": {
                        "type": "string",
                        "description": "Payment status (default: completed)"
                    },
                    "payment_date": {
                        "type": "string",
                        "description": "Date of payment (ISO 8601 format, default: now)"
                    },
                    "notes": {
                        "type": "string",
                        "description": "Internal notes for the payment"
                    },
                    "gateway_key": {
                        "type": "string",
                        "description": "Payment gateway identifier"
                    },
                    "transaction_id": {
                        "type": "string",
                        "description": "External transaction ID"
                    }
                },
                "required": [
                    "invoice_number",
                    "amount"
                ]
            },
            "Booths": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "plan_id": {
                        "type": "integer"
                    },
                    "plan_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "event_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "event_title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "booth_type_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "booth_type_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "booth_type_key": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "booth_number": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "booth_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "dimensions": {
                        "type": "object"
                    },
                    "position": {
                        "type": "object"
                    },
                    "formula_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "fixed_price": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "tax_rate": {
                        "type": "number"
                    },
                    "status": {
                        "type": "string"
                    },
                    "blocked_reason": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "color": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "notes": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "amenities": {
                        "type": "array",
                        "items": {}
                    },
                    "reservation": {
                        "type": [
                            "object",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "BoothsInput": {
                "type": "object",
                "properties": {
                    "plan_id": {
                        "type": "integer",
                        "description": "Floor plan ID (required)"
                    },
                    "booth_type_id": {
                        "type": "integer",
                        "description": "Booth type ID"
                    },
                    "booth_number": {
                        "type": "string",
                        "description": "Booth number (auto-generated if omitted)"
                    },
                    "booth_name": {
                        "type": "string",
                        "description": "Display name for the booth"
                    },
                    "description": {
                        "type": "string",
                        "description": "Booth description"
                    },
                    "width": {
                        "type": "number",
                        "description": "Booth width in meters (default: 3.00)"
                    },
                    "depth": {
                        "type": "number",
                        "description": "Booth depth in meters (default: 3.00)"
                    },
                    "pos_x": {
                        "type": "number",
                        "description": "X position on the floor plan (default: 0.00)"
                    },
                    "pos_y": {
                        "type": "number",
                        "description": "Y position on the floor plan (default: 0.00)"
                    },
                    "rotation": {
                        "type": "integer",
                        "description": "Rotation angle in degrees (default: 0)"
                    },
                    "formula_id": {
                        "type": "integer",
                        "description": "Pricing formula ID"
                    },
                    "fixed_price": {
                        "type": "number",
                        "description": "Fixed price override"
                    },
                    "tax_rate": {
                        "type": "number",
                        "description": "Tax rate percentage (default: system default)"
                    },
                    "status": {
                        "type": "string",
                        "description": "Booth status (available, reserved, sold, blocked)"
                    },
                    "blocked_reason": {
                        "type": "string",
                        "description": "Reason for blocking the booth"
                    },
                    "notes": {
                        "type": "string",
                        "description": "Internal notes"
                    },
                    "amenities": {
                        "type": "array",
                        "items": {},
                        "description": "List of amenities, e.g. [\"WiFi\", \"Power\"] (a comma-separated string is also accepted). Omit to keep the current list, send null or [] to clear it"
                    }
                }
            },
            "BoothsCreateInput": {
                "type": "object",
                "properties": {
                    "plan_id": {
                        "type": "integer",
                        "description": "Floor plan ID (required)"
                    },
                    "booth_type_id": {
                        "type": "integer",
                        "description": "Booth type ID"
                    },
                    "booth_number": {
                        "type": "string",
                        "description": "Booth number (auto-generated if omitted)"
                    },
                    "booth_name": {
                        "type": "string",
                        "description": "Display name for the booth"
                    },
                    "description": {
                        "type": "string",
                        "description": "Booth description"
                    },
                    "width": {
                        "type": "number",
                        "description": "Booth width in meters (default: 3.00)"
                    },
                    "depth": {
                        "type": "number",
                        "description": "Booth depth in meters (default: 3.00)"
                    },
                    "pos_x": {
                        "type": "number",
                        "description": "X position on the floor plan (default: 0.00)"
                    },
                    "pos_y": {
                        "type": "number",
                        "description": "Y position on the floor plan (default: 0.00)"
                    },
                    "rotation": {
                        "type": "integer",
                        "description": "Rotation angle in degrees (default: 0)"
                    },
                    "formula_id": {
                        "type": "integer",
                        "description": "Pricing formula ID"
                    },
                    "fixed_price": {
                        "type": "number",
                        "description": "Fixed price override"
                    },
                    "tax_rate": {
                        "type": "number",
                        "description": "Tax rate percentage (default: system default)"
                    },
                    "status": {
                        "type": "string",
                        "description": "Booth status (available, reserved, sold, blocked)"
                    },
                    "blocked_reason": {
                        "type": "string",
                        "description": "Reason for blocking the booth"
                    },
                    "notes": {
                        "type": "string",
                        "description": "Internal notes"
                    },
                    "amenities": {
                        "type": "array",
                        "items": {},
                        "description": "List of amenities, e.g. [\"WiFi\", \"Power\"] (a comma-separated string is also accepted). Omit to keep the current list, send null or [] to clear it"
                    }
                },
                "required": [
                    "plan_id"
                ]
            },
            "BoothReservations": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "booth_id": {
                        "type": "integer"
                    },
                    "event_participant_id": {
                        "type": "integer"
                    },
                    "status": {
                        "type": "string"
                    },
                    "reserved_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "confirmed_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "cancelled_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "cancellation_reason": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "final_price": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "price_breakdown": {
                        "type": [
                            "object",
                            "null"
                        ]
                    },
                    "notes": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_by": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "BoothReservationsInput": {
                "type": "object",
                "properties": {
                    "booth_id": {
                        "type": "integer",
                        "description": "Booth ID to reserve (required; the booth must be available)"
                    },
                    "event_participant_id": {
                        "type": "integer",
                        "description": "Participant ID for the reservation (required)"
                    },
                    "status": {
                        "type": "string",
                        "description": "Reservation status. On create: pending (default) or confirmed. On update: pending → confirmed/cancelled, confirmed → cancelled"
                    },
                    "notes": {
                        "type": "string",
                        "description": "Internal notes"
                    },
                    "final_price": {
                        "type": "number",
                        "description": "Final negotiated price"
                    },
                    "cancellation_reason": {
                        "type": "string",
                        "description": "Reason for cancellation (used when updating status to cancelled)"
                    }
                }
            },
            "BoothReservationsCreateInput": {
                "type": "object",
                "properties": {
                    "booth_id": {
                        "type": "integer",
                        "description": "Booth ID to reserve (required; the booth must be available)"
                    },
                    "event_participant_id": {
                        "type": "integer",
                        "description": "Participant ID for the reservation (required)"
                    },
                    "status": {
                        "type": "string",
                        "description": "Reservation status. On create: pending (default) or confirmed. On update: pending → confirmed/cancelled, confirmed → cancelled"
                    },
                    "notes": {
                        "type": "string",
                        "description": "Internal notes"
                    },
                    "final_price": {
                        "type": "number",
                        "description": "Final negotiated price"
                    },
                    "cancellation_reason": {
                        "type": "string",
                        "description": "Reason for cancellation (used when updating status to cancelled)"
                    }
                },
                "required": [
                    "booth_id",
                    "event_participant_id"
                ]
            },
            "BoothTypes": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "booth_type_key": {
                        "type": "string"
                    },
                    "booth_type_name": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "default_width": {
                        "type": "number"
                    },
                    "default_depth": {
                        "type": "number"
                    },
                    "min_width": {
                        "type": "number"
                    },
                    "max_width": {
                        "type": "number"
                    },
                    "min_depth": {
                        "type": "number"
                    },
                    "max_depth": {
                        "type": "number"
                    },
                    "color": {
                        "type": "string"
                    },
                    "category_keys": {
                        "type": "array",
                        "items": {}
                    },
                    "event_keys": {
                        "type": "array",
                        "items": {}
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "sort_order": {
                        "type": "integer"
                    },
                    "booth_count": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "BoothTypesInput": {
                "type": "object",
                "properties": {
                    "booth_type_name": {
                        "type": "string",
                        "description": "Name shown to admins and exhibitors (2-255 characters)"
                    },
                    "booth_type_key": {
                        "type": "string",
                        "description": "Unique key (lowercase letters, digits, \"_\" and \"-\"); generated from the name when omitted"
                    },
                    "description": {
                        "type": "string",
                        "description": "Short description (e.g. \"one open side\")"
                    },
                    "default_width": {
                        "type": "number",
                        "description": "Default width in metres (default 3)"
                    },
                    "default_depth": {
                        "type": "number",
                        "description": "Default depth in metres (default 3)"
                    },
                    "min_width": {
                        "type": "number",
                        "description": "Allowed range in metres (min_width/max_width, min_depth/max_depth; default 1 to 20)"
                    },
                    "max_width": {
                        "type": "number",
                        "description": "Allowed range in metres (min_width/max_width, min_depth/max_depth; default 1 to 20)"
                    },
                    "min_depth": {
                        "type": "number",
                        "description": "Allowed range in metres (min_width/max_width, min_depth/max_depth; default 1 to 20)"
                    },
                    "max_depth": {
                        "type": "number",
                        "description": "Allowed range in metres (min_width/max_width, min_depth/max_depth; default 1 to 20)"
                    },
                    "color": {
                        "type": "string",
                        "description": "Colour in the floor plan (hex, e.g. #3B82F6)"
                    },
                    "category_keys": {
                        "type": "array",
                        "items": {},
                        "description": "Only for these exhibitor categories (empty = all)"
                    },
                    "event_keys": {
                        "type": "array",
                        "items": {},
                        "description": "Only for these events (empty = all)"
                    },
                    "is_active": {
                        "type": "boolean",
                        "description": "Whether the type can be used for new booths"
                    }
                }
            },
            "BoothTypesCreateInput": {
                "type": "object",
                "properties": {
                    "booth_type_name": {
                        "type": "string",
                        "description": "Name shown to admins and exhibitors (2-255 characters)"
                    },
                    "booth_type_key": {
                        "type": "string",
                        "description": "Unique key (lowercase letters, digits, \"_\" and \"-\"); generated from the name when omitted"
                    },
                    "description": {
                        "type": "string",
                        "description": "Short description (e.g. \"one open side\")"
                    },
                    "default_width": {
                        "type": "number",
                        "description": "Default width in metres (default 3)"
                    },
                    "default_depth": {
                        "type": "number",
                        "description": "Default depth in metres (default 3)"
                    },
                    "min_width": {
                        "type": "number",
                        "description": "Allowed range in metres (min_width/max_width, min_depth/max_depth; default 1 to 20)"
                    },
                    "max_width": {
                        "type": "number",
                        "description": "Allowed range in metres (min_width/max_width, min_depth/max_depth; default 1 to 20)"
                    },
                    "min_depth": {
                        "type": "number",
                        "description": "Allowed range in metres (min_width/max_width, min_depth/max_depth; default 1 to 20)"
                    },
                    "max_depth": {
                        "type": "number",
                        "description": "Allowed range in metres (min_width/max_width, min_depth/max_depth; default 1 to 20)"
                    },
                    "color": {
                        "type": "string",
                        "description": "Colour in the floor plan (hex, e.g. #3B82F6)"
                    },
                    "category_keys": {
                        "type": "array",
                        "items": {},
                        "description": "Only for these exhibitor categories (empty = all)"
                    },
                    "event_keys": {
                        "type": "array",
                        "items": {},
                        "description": "Only for these events (empty = all)"
                    },
                    "is_active": {
                        "type": "boolean",
                        "description": "Whether the type can be used for new booths"
                    }
                },
                "required": [
                    "booth_type_name"
                ]
            },
            "CheckIns": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "event_participant_id": {
                        "type": "integer"
                    },
                    "event_id": {
                        "type": "integer"
                    },
                    "event_title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "event_key": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "contact": {
                        "type": "object"
                    },
                    "check_in_type": {
                        "type": "string"
                    },
                    "badge_number": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "station": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "checked_in_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "checked_out_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "is_checked_in": {
                        "type": "boolean"
                    },
                    "checked_in_by": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "notes": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "additionalProperties": true
            },
            "CheckInsCreateInput": {
                "type": "object",
                "properties": {
                    "event_key": {
                        "type": "string",
                        "description": "Event key (required)"
                    },
                    "participant_id": {
                        "type": "integer",
                        "description": "Participant ID (required if no badge_number)"
                    },
                    "badge_number": {
                        "type": "string",
                        "description": "Badge number (required if no participant_id)"
                    },
                    "action": {
                        "type": "string",
                        "description": "Action to perform (check_in or check_out, default: check_in)"
                    },
                    "check_in_type": {
                        "type": "string",
                        "description": "Check-in method (manual, scan, app)"
                    },
                    "station": {
                        "type": "string",
                        "description": "Check-in station identifier"
                    },
                    "notes": {
                        "type": "string",
                        "description": "Check-in notes"
                    }
                },
                "required": [
                    "event_key"
                ]
            },
            "Tasks": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "entity_type": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "entity_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "assigned_to": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "assigned_to_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_by": {
                        "type": "integer"
                    },
                    "created_by_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "title": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "due_date": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "priority": {
                        "type": "string"
                    },
                    "status": {
                        "type": "string"
                    },
                    "completed_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "completed_by": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "TasksInput": {
                "type": "object",
                "properties": {
                    "title": {
                        "type": "string",
                        "description": "Task title"
                    },
                    "description": {
                        "type": "string",
                        "description": "Task description"
                    },
                    "status": {
                        "type": "string",
                        "description": "Status (pending, in_progress, completed, cancelled)"
                    },
                    "priority": {
                        "type": "string",
                        "description": "Priority (urgent, high, normal, low)"
                    },
                    "due_date": {
                        "type": "string",
                        "description": "Due date (ISO 8601 format)"
                    },
                    "assigned_to": {
                        "type": "integer",
                        "description": "ID of assigned administrator"
                    },
                    "entity_type": {
                        "type": "string",
                        "description": "Linked entity type (event, contact, application, etc.)"
                    },
                    "entity_id": {
                        "type": "integer",
                        "description": "ID of the linked entity"
                    }
                }
            },
            "TasksCreateInput": {
                "type": "object",
                "properties": {
                    "title": {
                        "type": "string",
                        "description": "Task title"
                    },
                    "description": {
                        "type": "string",
                        "description": "Task description"
                    },
                    "status": {
                        "type": "string",
                        "description": "Status (pending, in_progress, completed, cancelled)"
                    },
                    "priority": {
                        "type": "string",
                        "description": "Priority (urgent, high, normal, low)"
                    },
                    "due_date": {
                        "type": "string",
                        "description": "Due date (ISO 8601 format)"
                    },
                    "assigned_to": {
                        "type": "integer",
                        "description": "ID of assigned administrator"
                    },
                    "entity_type": {
                        "type": "string",
                        "description": "Linked entity type (event, contact, application, etc.)"
                    },
                    "entity_id": {
                        "type": "integer",
                        "description": "ID of the linked entity"
                    }
                },
                "required": [
                    "title"
                ]
            },
            "Documents": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "category_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "category_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "document_number": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "entity_type": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "entity_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "template_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "content": {
                        "type": "string"
                    },
                    "metadata": {
                        "type": [
                            "object",
                            "null"
                        ]
                    },
                    "esign_status": {
                        "type": "string"
                    },
                    "is_contract": {
                        "type": "boolean"
                    },
                    "contract_status": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "DocumentsInput": {
                "type": "object",
                "properties": {
                    "content": {
                        "type": "string",
                        "description": "New content as HTML (disallowed elements such as scripts are removed; empty content: 422). Only for documents that are not locked"
                    },
                    "metadata": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "description": "Additional data as a JSON object (at most 64 KB); null removes it. Only for documents that are not locked"
                    },
                    "contract_status": {
                        "type": "string",
                        "description": "Contract status (draft, pending_signature, active, terminated); contracts only. On locked contracts only the permitted steps; the 409 answer lists them in \"allowed\""
                    }
                }
            },
            "DocumentsCreateInput": {
                "type": "object",
                "properties": {
                    "entity_type": {
                        "type": "string",
                        "description": "Entity type for the document (required; currently only event_participant)"
                    },
                    "entity_id": {
                        "type": "integer",
                        "description": "Entity ID for the document (required; a record that does not exist returns 404)"
                    },
                    "template_id": {
                        "type": "integer",
                        "description": "Document template ID (required if no category_id). Exactly this active template is used; if category_id is sent as well, the template must belong to that category"
                    },
                    "category_id": {
                        "type": "integer",
                        "description": "Document category ID (required if no template_id). Without template_id, the first template whose conditions match is used, otherwise the default template"
                    },
                    "metadata": {
                        "type": "object",
                        "description": "Additional metadata as key-value pairs"
                    }
                },
                "required": [
                    "entity_type",
                    "entity_id"
                ]
            },
            "Submissions": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "event_submission_id": {
                        "type": "integer"
                    },
                    "event_participant_id": {
                        "type": "integer"
                    },
                    "status": {
                        "type": "string"
                    },
                    "submitted_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "value_text": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "value_file": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "reviewed_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "reviewed_by": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "reviewer_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "review_notes": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "revision_count": {
                        "type": "integer"
                    },
                    "is_late": {
                        "type": "boolean"
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    },
                    "type_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "type_key": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                },
                "additionalProperties": true
            },
            "SubmissionsInput": {
                "type": "object",
                "properties": {
                    "status": {
                        "type": "string",
                        "description": "New status (approved, rejected, or revision_requested)"
                    },
                    "review_notes": {
                        "type": "string",
                        "description": "Review notes for the status change"
                    },
                    "notify": {
                        "type": "boolean",
                        "description": "true: the exhibitor receives an e-mail about the decision (in their language). Default: false"
                    }
                }
            },
            "SubmissionsCreateInput": {
                "type": "object",
                "properties": {
                    "event_participant_id": {
                        "type": "integer",
                        "description": "ID of the participation (required)"
                    },
                    "event_submission_id": {
                        "type": "integer",
                        "description": "ID of the event requirement (required; see GET /submission-types and the event's submissions)"
                    },
                    "file": {
                        "type": "string",
                        "format": "binary",
                        "description": "The file (multipart/form-data, required for file requirements; allowed types and size of the requirement)"
                    },
                    "value": {
                        "type": [
                            "string",
                            "boolean"
                        ],
                        "description": "Answer for text, URL or yes/no requirements (at most 10,000 characters; URLs without a scheme get https://)"
                    },
                    "custom_fields": {
                        "type": "object",
                        "description": "Values of the submission form's custom fields as an object {field_key: value}; validated like the form"
                    }
                },
                "required": [
                    "event_participant_id",
                    "event_submission_id"
                ]
            },
            "ServiceOrders": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "order_number": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "event_participant_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "string"
                    },
                    "subtotal": {
                        "type": "number"
                    },
                    "tax_total": {
                        "type": "number"
                    },
                    "total": {
                        "type": "number"
                    },
                    "currency": {
                        "type": "string"
                    },
                    "notes": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "submitted_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "confirmed_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "cancelled_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "cancellation_reason": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "ServiceOrdersInput": {
                "type": "object",
                "properties": {
                    "status": {
                        "type": "string",
                        "description": "New status: confirmed, completed or cancelled"
                    },
                    "cancellation_reason": {
                        "type": "string",
                        "description": "Reason shown to the exhibitor when cancelling (optional)"
                    }
                }
            },
            "Plans": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "event_id": {
                        "type": "integer"
                    },
                    "event_title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "plan_key": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "plan_name": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "area_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "width": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "height": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "background_image": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "floor_plan_svg": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "floor_plan_width": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "floor_plan_height": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "grid_size": {
                        "type": "integer"
                    },
                    "scale_factor": {
                        "type": "number"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "sort_order": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "CustomFields": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "form_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "entity_type": {
                        "type": "string"
                    },
                    "field_key": {
                        "type": "string"
                    },
                    "field_label": {
                        "type": "string"
                    },
                    "field_type": {
                        "type": "string"
                    },
                    "section_key": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "field_options": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "validation_rules": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "is_required": {
                        "type": "boolean"
                    },
                    "is_searchable": {
                        "type": "boolean"
                    },
                    "applicant_visibility": {
                        "type": "string"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "display_order": {
                        "type": "integer"
                    }
                },
                "additionalProperties": true
            },
            "CustomFieldsInput": {
                "type": "object",
                "properties": {}
            },
            "Services": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "category_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "category_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "service_key": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "service_name": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "short_description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "unit": {
                        "type": "string"
                    },
                    "unit_label": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "base_price": {
                        "type": "number"
                    },
                    "tax_rate": {
                        "type": "number"
                    },
                    "min_quantity": {
                        "type": "integer"
                    },
                    "max_quantity": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "quantity_step": {
                        "type": "integer"
                    },
                    "requires_specification": {
                        "type": "boolean"
                    },
                    "specification_label": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "specification_placeholder": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "lead_time_days": {
                        "type": "integer"
                    },
                    "image_filename": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "sort_order": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "ServiceCategories": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "category_key": {
                        "type": "string"
                    },
                    "category_name": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "color": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "sort_order": {
                        "type": "integer"
                    },
                    "service_count": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "EventServices": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "event_id": {
                        "type": "integer"
                    },
                    "service_id": {
                        "type": "integer"
                    },
                    "service_key": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "service_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "category_key": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "category_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "unit": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "base_price": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "price_override": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "early_bird_price": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "early_bird_deadline": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "early_bird_active": {
                        "type": "boolean"
                    },
                    "effective_price": {
                        "type": "number"
                    },
                    "tax_rate": {
                        "type": "number"
                    },
                    "order_deadline": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "max_quantity_per_participant": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "total_inventory": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "remaining_inventory": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "SubmissionTypes": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "type_key": {
                        "type": "string"
                    },
                    "type_name": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "input_type": {
                        "type": "string"
                    },
                    "custom_field_key": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "allowed_extensions": {
                        "type": "array",
                        "items": {}
                    },
                    "max_file_size_mb": {
                        "type": "integer"
                    },
                    "is_required": {
                        "type": "boolean"
                    },
                    "requires_approval": {
                        "type": "boolean"
                    },
                    "category_keys": {
                        "type": "array",
                        "items": {}
                    },
                    "help_text": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "example_url": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "sort_order": {
                        "type": "integer"
                    },
                    "event_count": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "ListTemplates": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "template_key": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "parent_entity_type": {
                        "type": "string"
                    },
                    "category_keys": {
                        "type": "array",
                        "items": {}
                    },
                    "event_keys": {
                        "type": "array",
                        "items": {}
                    },
                    "exhibitor_access": {
                        "type": "string"
                    },
                    "min_entries": {
                        "type": "integer"
                    },
                    "max_entries": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "entry_count": {
                        "type": "integer"
                    },
                    "fields": {
                        "type": "array",
                        "items": {}
                    }
                },
                "additionalProperties": true
            },
            "ListEntries": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "template_id": {
                        "type": "integer"
                    },
                    "template_key": {
                        "type": "string"
                    },
                    "parent_entity_type": {
                        "type": "string"
                    },
                    "parent_entity_id": {
                        "type": "integer"
                    },
                    "values": {
                        "type": "object"
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "ListEntriesInput": {
                "type": "object",
                "properties": {
                    "template_id": {
                        "type": "integer",
                        "description": "ID of the list (or template_key)"
                    },
                    "template_key": {
                        "type": "string",
                        "description": "Key of the list (alternative to template_id)"
                    },
                    "parent_entity_type": {
                        "type": "string",
                        "description": "event_participant (default), event or contact"
                    },
                    "parent_entity_id": {
                        "type": "integer",
                        "description": "ID of the participant, event or contact the entry belongs to"
                    },
                    "values": {
                        "type": "object",
                        "description": "The field values as an object: {\"field_key\": value}. Choice fields take the option value, checkboxes true/false, dates YYYY-MM-DD, attendance grids a list of dates. On PATCH only the given fields change."
                    }
                }
            },
            "ListEntriesCreateInput": {
                "type": "object",
                "properties": {
                    "template_id": {
                        "type": "integer",
                        "description": "ID of the list (or template_key)"
                    },
                    "template_key": {
                        "type": "string",
                        "description": "Key of the list (alternative to template_id)"
                    },
                    "parent_entity_type": {
                        "type": "string",
                        "description": "event_participant (default), event or contact"
                    },
                    "parent_entity_id": {
                        "type": "integer",
                        "description": "ID of the participant, event or contact the entry belongs to"
                    },
                    "values": {
                        "type": "object",
                        "description": "The field values as an object: {\"field_key\": value}. Choice fields take the option value, checkboxes true/false, dates YYYY-MM-DD, attendance grids a list of dates. On PATCH only the given fields change."
                    }
                },
                "required": [
                    "parent_entity_id",
                    "values"
                ]
            },
            "Newsletter": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "email": {
                        "type": "string"
                    },
                    "name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "contact_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "status": {
                        "type": "string"
                    },
                    "confirmed_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "unsubscribed_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "NewsletterCreateInput": {
                "type": "object",
                "properties": {
                    "email": {
                        "type": "string",
                        "description": "Email address to subscribe (required)"
                    },
                    "name": {
                        "type": "string",
                        "description": "Subscriber name"
                    },
                    "send_confirmation": {
                        "type": "boolean",
                        "description": "Whether to send the double opt-in confirmation email (default: true). The subscriber stays pending until the link in the email is confirmed. Use false only for imports of addresses whose consent was already obtained elsewhere; false never reactivates an address that has unsubscribed (409)"
                    },
                    "language": {
                        "type": "string",
                        "description": "Language of the confirmation email and link, e.g. de or en (default: tenant default language)"
                    },
                    "consent_ip": {
                        "type": "string",
                        "description": "IP address of the subscriber when your system forwards a sign-up (stored as consent evidence; default: the API client IP)"
                    },
                    "consent_user_agent": {
                        "type": "string",
                        "description": "Browser user agent of the subscriber when your system forwards a sign-up (default: the API client user agent)"
                    }
                },
                "required": [
                    "email"
                ]
            },
            "Notes": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "entity_type": {
                        "type": "string"
                    },
                    "entity_id": {
                        "type": "integer"
                    },
                    "admin_id": {
                        "type": "integer"
                    },
                    "admin_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "note_text": {
                        "type": "string"
                    },
                    "note_type": {
                        "type": "string"
                    },
                    "is_pinned": {
                        "type": "boolean"
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "NotesInput": {
                "type": "object",
                "properties": {
                    "entity_type": {
                        "type": "string",
                        "description": "Entity type (required: contact, application, event_participant, invoice, event)"
                    },
                    "entity_id": {
                        "type": "integer",
                        "description": "Entity ID (required)"
                    },
                    "note_text": {
                        "type": "string",
                        "description": "Note content (required)"
                    },
                    "note_type": {
                        "type": "string",
                        "description": "Note type (info, warning, followup, internal; default: info)"
                    },
                    "is_pinned": {
                        "type": "boolean",
                        "description": "Whether the note is pinned"
                    }
                }
            },
            "NotesCreateInput": {
                "type": "object",
                "properties": {
                    "entity_type": {
                        "type": "string",
                        "description": "Entity type (required: contact, application, event_participant, invoice, event)"
                    },
                    "entity_id": {
                        "type": "integer",
                        "description": "Entity ID (required)"
                    },
                    "note_text": {
                        "type": "string",
                        "description": "Note content (required)"
                    },
                    "note_type": {
                        "type": "string",
                        "description": "Note type (info, warning, followup, internal; default: info)"
                    },
                    "is_pinned": {
                        "type": "boolean",
                        "description": "Whether the note is pinned"
                    }
                },
                "required": [
                    "entity_type",
                    "entity_id",
                    "note_text"
                ]
            },
            "Schedules": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "event_id": {
                        "type": "integer"
                    },
                    "event_title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "slot_date": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "start_time": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "end_time": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "location": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "slot_type": {
                        "type": "string"
                    },
                    "is_public": {
                        "type": "boolean"
                    },
                    "show_in_public_agenda": {
                        "type": "boolean",
                        "description": "true = the session appears in the event's public programme"
                    },
                    "sort_order": {
                        "type": "integer"
                    },
                    "created_at": {
                        "type": "string"
                    },
                    "updated_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "Webhooks": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "url": {
                        "type": "string"
                    },
                    "events": {
                        "type": "array",
                        "items": {}
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "retry_count": {
                        "type": "integer"
                    },
                    "timeout_seconds": {
                        "type": "integer"
                    },
                    "last_triggered_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "last_success_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "last_failure_at": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "failure_count": {
                        "type": "integer"
                    },
                    "secret": {
                        "type": "string",
                        "description": "create/show only"
                    },
                    "created_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            },
            "WebhooksCreateInput": {
                "type": "object",
                "properties": {
                    "url": {
                        "type": "string",
                        "description": "Webhook endpoint URL (HTTPS required)"
                    },
                    "events": {
                        "type": "array",
                        "items": {},
                        "description": "Array of event types to subscribe to"
                    },
                    "name": {
                        "type": "string",
                        "description": "Display name for the webhook"
                    },
                    "is_active": {
                        "type": "boolean",
                        "description": "Whether the webhook is active (boolean, default: true)"
                    },
                    "headers": {
                        "type": "object",
                        "description": "Custom HTTP headers as an object of \"Header-Name\": \"value\" pairs (max 20; names A-Z, 0-9 and hyphens; no line breaks in values; Host, Content-Type, Content-Length, Transfer-Encoding, Connection, User-Agent and X-Webhook-* cannot be overridden)"
                    },
                    "retry_count": {
                        "type": "integer",
                        "description": "Number of retry attempts on failure, 0-10 (default: 3)"
                    },
                    "timeout_seconds": {
                        "type": "integer",
                        "description": "Request timeout in seconds, 5-120 (default: 30)"
                    }
                },
                "required": [
                    "url",
                    "events"
                ]
            },
            "AuditLog": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "action": {
                        "type": "string"
                    },
                    "entity_type": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "entity_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "entity_title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "description": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "old_values": {
                        "type": [
                            "object",
                            "null"
                        ]
                    },
                    "new_values": {
                        "type": [
                            "object",
                            "null"
                        ]
                    },
                    "admin_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "admin_name": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "ip_address": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "user_agent": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "created_at": {
                        "type": "string"
                    }
                },
                "additionalProperties": true
            }
        },
        "responses": {
            "BadRequest": {
                "description": "The request is malformed",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        }
                    }
                }
            },
            "Unauthorized": {
                "description": "API key missing, invalid or expired",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        }
                    }
                }
            },
            "Forbidden": {
                "description": "The API key lacks the required scope, or the feature is not part of your package",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        }
                    }
                }
            },
            "NotFound": {
                "description": "Record not found",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        }
                    }
                }
            },
            "ValidationFailed": {
                "description": "Validation failed; errors lists the message per field",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/ValidationError"
                        }
                    }
                }
            },
            "TooManyRequests": {
                "description": "Rate limit reached; try again later",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        }
                    }
                }
            }
        },
        "parameters": {
            "page": {
                "name": "page",
                "in": "query",
                "required": false,
                "description": "Page number (starts at 1)",
                "schema": {
                    "type": "integer",
                    "minimum": 1,
                    "default": 1
                }
            },
            "per_page": {
                "name": "per_page",
                "in": "query",
                "required": false,
                "description": "Entries per page (1 to 100, default 25)",
                "schema": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 100,
                    "default": 25
                }
            }
        }
    }
}