{
  "openapi": "3.0.3",
  "info": {
    "title": "RoadOps Developer API",
    "version": "0.1.0"
  },
  "servers": [
    {
      "url": "https://api.roadops.app/v1"
    }
  ],
  "x-roadops-scope-catalog": [
    {
      "value": "read:all",
      "label": "Read all",
      "description": "Read everything accessible to your account.",
      "group": "All resources",
      "depth": 0,
      "consentDescription": "Read everything accessible to your account."
    },
    {
      "value": "write:all",
      "label": "Write all",
      "description": "Create, update, and delete everything your account is allowed to manage.",
      "group": "All resources",
      "depth": 0,
      "consentDescription": "Create, update, and delete everything your account is allowed to manage."
    },
    {
      "value": "team:read",
      "label": "Read teams",
      "description": "View the teams your account can access.",
      "group": "Teams",
      "depth": 1,
      "coveredBy": "read:all",
      "consentDescription": "View the teams your account can access."
    },
    {
      "value": "team:write",
      "label": "Write teams",
      "description": "Create and manage teams when those actions are available.",
      "group": "Teams",
      "depth": 1,
      "coveredBy": "write:all",
      "consentDescription": "Create and manage teams when those actions are available."
    },
    {
      "value": "member:read",
      "label": "Read members",
      "description": "View team members, their profiles and roles, and pending invitations.",
      "group": "Members",
      "depth": 2,
      "coveredBy": "read:all",
      "requires": [
        "team:read"
      ],
      "consentDescription": "View team members, their profiles and roles, and pending invitations."
    },
    {
      "value": "member:write",
      "label": "Write members",
      "description": "Invite people and update or remove team members.",
      "group": "Members",
      "depth": 2,
      "coveredBy": "write:all",
      "consentDescription": "Invite people and update or remove team members."
    },
    {
      "value": "user_group:read",
      "label": "Read travel parties",
      "description": "View travel parties and the people assigned to them.",
      "group": "Travel Parties",
      "depth": 2,
      "coveredBy": "read:all",
      "requires": [
        "team:read"
      ],
      "consentDescription": "View travel parties and the people assigned to them."
    },
    {
      "value": "user_group:write",
      "label": "Write travel parties",
      "description": "Create, update, and delete travel parties and manage who belongs to them.",
      "group": "Travel Parties",
      "depth": 2,
      "coveredBy": "write:all",
      "consentDescription": "Create, update, and delete travel parties and manage who belongs to them."
    },
    {
      "value": "day:read",
      "label": "Read days",
      "description": "View days and their details that your account can access.",
      "group": "Days",
      "depth": 1,
      "coveredBy": "read:all",
      "requires": [
        "team:read"
      ],
      "consentDescription": "View days and their details that your account can access."
    },
    {
      "value": "day:write",
      "label": "Write days",
      "description": "Create, update, and delete days.",
      "group": "Days",
      "depth": 1,
      "coveredBy": "write:all",
      "consentDescription": "Create, update, and delete days."
    },
    {
      "value": "day_note:read",
      "label": "Read day notes",
      "description": "View notes on days your account can access.",
      "group": "Day notes",
      "depth": 2,
      "coveredBy": "read:all",
      "requires": [
        "day:read"
      ],
      "consentDescription": "View notes on days your account can access."
    },
    {
      "value": "day_note:write",
      "label": "Write day notes",
      "description": "Create, update, and delete day notes.",
      "group": "Day notes",
      "depth": 2,
      "coveredBy": "write:all",
      "consentDescription": "Create, update, and delete day notes."
    },
    {
      "value": "day_file:read",
      "label": "Read day files",
      "description": "View and download files attached to days your account can access.",
      "group": "Day files",
      "depth": 2,
      "coveredBy": "read:all",
      "requires": [
        "day:read"
      ],
      "consentDescription": "View and download files attached to days your account can access."
    },
    {
      "value": "day_file:write",
      "label": "Write day files",
      "description": "Upload, update, and delete files attached to days.",
      "group": "Day files",
      "depth": 2,
      "coveredBy": "write:all",
      "consentDescription": "Upload, update, and delete files attached to days."
    },
    {
      "value": "schedule_item:read",
      "label": "Read schedule items",
      "description": "View schedule items on days your account can access.",
      "group": "Schedule items",
      "depth": 2,
      "coveredBy": "read:all",
      "requires": [
        "day:read"
      ],
      "consentDescription": "View schedule items on days your account can access."
    },
    {
      "value": "schedule_item:write",
      "label": "Write schedule items",
      "description": "Create, update, and delete schedule items.",
      "group": "Schedule items",
      "depth": 2,
      "coveredBy": "write:all",
      "consentDescription": "Create, update, and delete schedule items."
    },
    {
      "value": "event:read",
      "label": "Read events",
      "description": "View events and their details.",
      "group": "Events",
      "depth": 2,
      "coveredBy": "read:all",
      "requires": [
        "day:read"
      ],
      "consentDescription": "View events and their details."
    },
    {
      "value": "event:write",
      "label": "Write events",
      "description": "Create, update, and delete events.",
      "group": "Events",
      "depth": 2,
      "coveredBy": "write:all",
      "consentDescription": "Create, update, and delete events."
    },
    {
      "value": "venue:read",
      "label": "Read venues",
      "description": "View venues and their details.",
      "group": "Venues",
      "depth": 3,
      "coveredBy": "read:all",
      "requires": [
        "team:read"
      ],
      "consentDescription": "View venues and their details."
    },
    {
      "value": "venue:write",
      "label": "Write venues",
      "description": "Create, update, and delete venues.",
      "group": "Venues",
      "depth": 3,
      "coveredBy": "write:all",
      "consentDescription": "Create, update, and delete venues."
    },
    {
      "value": "guest_request:read",
      "label": "Read guest requests",
      "description": "View guest requests your account can access.",
      "group": "Guest requests",
      "depth": 3,
      "coveredBy": "read:all",
      "requires": [
        "event:read"
      ],
      "consentDescription": "View guest requests your account can access."
    },
    {
      "value": "guest_request:write",
      "label": "Write guest requests",
      "description": "Create, update, and delete guest requests your account is allowed to manage.",
      "group": "Guest requests",
      "depth": 3,
      "coveredBy": "write:all",
      "consentDescription": "Create, update, and delete guest requests your account is allowed to manage."
    },
    {
      "value": "pass_type:read",
      "label": "Read pass types",
      "description": "View the pass types available for guest requests.",
      "group": "Pass types",
      "depth": 4,
      "coveredBy": "read:all",
      "requires": [
        "team:read"
      ],
      "consentDescription": "View the pass types available for guest requests."
    },
    {
      "value": "pass_type:write",
      "label": "Write pass types",
      "description": "Create, update, and delete pass types.",
      "group": "Pass types",
      "depth": 4,
      "coveredBy": "write:all",
      "consentDescription": "Create, update, and delete pass types."
    },
    {
      "value": "ticket_type:read",
      "label": "Read ticket types",
      "description": "View the ticket types available for guest requests.",
      "group": "Ticket types",
      "depth": 4,
      "coveredBy": "read:all",
      "requires": [
        "team:read"
      ],
      "consentDescription": "View the ticket types available for guest requests."
    },
    {
      "value": "ticket_type:write",
      "label": "Write ticket types",
      "description": "Create, update, and delete ticket types.",
      "group": "Ticket types",
      "depth": 4,
      "coveredBy": "write:all",
      "consentDescription": "Create, update, and delete ticket types."
    },
    {
      "value": "set_list:read",
      "label": "Read set lists",
      "description": "View set lists and the order of their songs and other items.",
      "group": "Set lists",
      "depth": 3,
      "coveredBy": "read:all",
      "requires": [
        "event:read"
      ],
      "consentDescription": "View set lists and the order of their songs and other items."
    },
    {
      "value": "set_list:write",
      "label": "Write set lists",
      "description": "Create, update, and delete set lists.",
      "group": "Set lists",
      "depth": 3,
      "coveredBy": "write:all",
      "consentDescription": "Create, update, and delete set lists."
    },
    {
      "value": "set_list_item:read",
      "label": "Read set list items",
      "description": "View reusable songs and other items used in set lists.",
      "group": "Set list items",
      "depth": 4,
      "coveredBy": "read:all",
      "requires": [
        "team:read"
      ],
      "consentDescription": "View reusable songs and other items used in set lists."
    },
    {
      "value": "set_list_item:write",
      "label": "Write set list items",
      "description": "Create, update, delete, retire, and restore reusable set list items.",
      "group": "Set list items",
      "depth": 4,
      "coveredBy": "write:all",
      "consentDescription": "Create, update, delete, retire, and restore reusable set list items."
    },
    {
      "value": "lodging:read",
      "label": "Read lodging",
      "description": "View lodging and room details.",
      "group": "Lodging",
      "depth": 2,
      "coveredBy": "read:all",
      "requires": [
        "team:read"
      ],
      "consentDescription": "View lodging and room details."
    },
    {
      "value": "lodging:write",
      "label": "Write lodging",
      "description": "Create, update, and delete lodging.",
      "group": "Lodging",
      "depth": 2,
      "coveredBy": "write:all",
      "consentDescription": "Create, update, and delete lodging."
    },
    {
      "value": "rental_car:read",
      "label": "Read rental cars",
      "description": "View rental car details on days your account can access.",
      "group": "Rental cars",
      "depth": 2,
      "coveredBy": "read:all",
      "requires": [
        "team:read"
      ],
      "consentDescription": "View rental car details on days your account can access."
    },
    {
      "value": "rental_car:write",
      "label": "Write rental cars",
      "description": "Create, update, and delete rental cars.",
      "group": "Rental cars",
      "depth": 2,
      "coveredBy": "write:all",
      "consentDescription": "Create, update, and delete rental cars."
    },
    {
      "value": "webhook:read",
      "label": "Read webhooks",
      "description": "View webhook endpoints, team bindings, and delivery history owned by your account.",
      "group": "Webhooks",
      "depth": 0,
      "consentDescription": "View webhook endpoints, team bindings, and delivery history owned by your account."
    },
    {
      "value": "webhook:write",
      "label": "Write webhooks",
      "description": "Create, update, test, rotate, retry, and delete webhook endpoints owned by your account.",
      "group": "Webhooks",
      "depth": 0,
      "consentDescription": "Create, update, test, rotate, retry, and delete webhook endpoints owned by your account."
    }
  ],
  "x-roadops-webhook-event-catalog": [
    {
      "type": "day.created",
      "resourceType": "day",
      "action": "created",
      "requiredScopes": [
        "day:read"
      ],
      "description": "day created."
    },
    {
      "type": "day.updated",
      "resourceType": "day",
      "action": "updated",
      "requiredScopes": [
        "day:read"
      ],
      "description": "day updated."
    },
    {
      "type": "day.deleted",
      "resourceType": "day",
      "action": "deleted",
      "requiredScopes": [
        "day:read"
      ],
      "description": "day deleted."
    },
    {
      "type": "schedule_item.created",
      "resourceType": "schedule_item",
      "action": "created",
      "requiredScopes": [
        "schedule_item:read"
      ],
      "description": "schedule item created."
    },
    {
      "type": "schedule_item.updated",
      "resourceType": "schedule_item",
      "action": "updated",
      "requiredScopes": [
        "schedule_item:read"
      ],
      "description": "schedule item updated."
    },
    {
      "type": "schedule_item.deleted",
      "resourceType": "schedule_item",
      "action": "deleted",
      "requiredScopes": [
        "schedule_item:read"
      ],
      "description": "schedule item deleted."
    },
    {
      "type": "event.created",
      "resourceType": "event",
      "action": "created",
      "requiredScopes": [
        "event:read"
      ],
      "description": "event created."
    },
    {
      "type": "event.updated",
      "resourceType": "event",
      "action": "updated",
      "requiredScopes": [
        "event:read"
      ],
      "description": "event updated."
    },
    {
      "type": "event.deleted",
      "resourceType": "event",
      "action": "deleted",
      "requiredScopes": [
        "event:read"
      ],
      "description": "event deleted."
    },
    {
      "type": "venue.created",
      "resourceType": "venue",
      "action": "created",
      "requiredScopes": [
        "venue:read"
      ],
      "description": "venue created."
    },
    {
      "type": "venue.updated",
      "resourceType": "venue",
      "action": "updated",
      "requiredScopes": [
        "venue:read"
      ],
      "description": "venue updated."
    },
    {
      "type": "venue.deleted",
      "resourceType": "venue",
      "action": "deleted",
      "requiredScopes": [
        "venue:read"
      ],
      "description": "venue deleted."
    },
    {
      "type": "guest_request.created",
      "resourceType": "guest_request",
      "action": "created",
      "requiredScopes": [
        "guest_request:read"
      ],
      "description": "guest request created."
    },
    {
      "type": "guest_request.updated",
      "resourceType": "guest_request",
      "action": "updated",
      "requiredScopes": [
        "guest_request:read"
      ],
      "description": "guest request updated."
    },
    {
      "type": "guest_request.deleted",
      "resourceType": "guest_request",
      "action": "deleted",
      "requiredScopes": [
        "guest_request:read"
      ],
      "description": "guest request deleted."
    },
    {
      "type": "lodging.created",
      "resourceType": "lodging",
      "action": "created",
      "requiredScopes": [
        "lodging:read"
      ],
      "description": "lodging created."
    },
    {
      "type": "lodging.updated",
      "resourceType": "lodging",
      "action": "updated",
      "requiredScopes": [
        "lodging:read"
      ],
      "description": "lodging updated."
    },
    {
      "type": "lodging.deleted",
      "resourceType": "lodging",
      "action": "deleted",
      "requiredScopes": [
        "lodging:read"
      ],
      "description": "lodging deleted."
    },
    {
      "type": "rental_car.created",
      "resourceType": "rental_car",
      "action": "created",
      "requiredScopes": [
        "rental_car:read"
      ],
      "description": "rental car created."
    },
    {
      "type": "rental_car.updated",
      "resourceType": "rental_car",
      "action": "updated",
      "requiredScopes": [
        "rental_car:read"
      ],
      "description": "rental car updated."
    },
    {
      "type": "rental_car.deleted",
      "resourceType": "rental_car",
      "action": "deleted",
      "requiredScopes": [
        "rental_car:read"
      ],
      "description": "rental car deleted."
    },
    {
      "type": "day_file.created",
      "resourceType": "day_file",
      "action": "created",
      "requiredScopes": [
        "day_file:read"
      ],
      "description": "day file created."
    },
    {
      "type": "day_file.updated",
      "resourceType": "day_file",
      "action": "updated",
      "requiredScopes": [
        "day_file:read"
      ],
      "description": "day file updated."
    },
    {
      "type": "day_file.deleted",
      "resourceType": "day_file",
      "action": "deleted",
      "requiredScopes": [
        "day_file:read"
      ],
      "description": "day file deleted."
    },
    {
      "type": "day_note.created",
      "resourceType": "day_note",
      "action": "created",
      "requiredScopes": [
        "day_note:read"
      ],
      "description": "day note created."
    },
    {
      "type": "day_note.updated",
      "resourceType": "day_note",
      "action": "updated",
      "requiredScopes": [
        "day_note:read"
      ],
      "description": "day note updated."
    },
    {
      "type": "day_note.deleted",
      "resourceType": "day_note",
      "action": "deleted",
      "requiredScopes": [
        "day_note:read"
      ],
      "description": "day note deleted."
    },
    {
      "type": "travel_party.created",
      "resourceType": "travel_party",
      "action": "created",
      "requiredScopes": [
        "user_group:read"
      ],
      "description": "travel party created."
    },
    {
      "type": "travel_party.updated",
      "resourceType": "travel_party",
      "action": "updated",
      "requiredScopes": [
        "user_group:read"
      ],
      "description": "travel party updated."
    },
    {
      "type": "travel_party.deleted",
      "resourceType": "travel_party",
      "action": "deleted",
      "requiredScopes": [
        "user_group:read"
      ],
      "description": "travel party deleted."
    },
    {
      "type": "travel_party.member_added",
      "resourceType": "travel_party_member",
      "action": "member_added",
      "requiredScopes": [
        "user_group:read"
      ],
      "description": "Member added to a travel party."
    },
    {
      "type": "travel_party.member_removed",
      "resourceType": "travel_party_member",
      "action": "member_removed",
      "requiredScopes": [
        "user_group:read"
      ],
      "description": "Member removed from a travel party."
    },
    {
      "type": "pass_type.created",
      "resourceType": "pass_type",
      "action": "created",
      "requiredScopes": [
        "pass_type:read"
      ],
      "description": "pass type created."
    },
    {
      "type": "pass_type.updated",
      "resourceType": "pass_type",
      "action": "updated",
      "requiredScopes": [
        "pass_type:read"
      ],
      "description": "pass type updated."
    },
    {
      "type": "pass_type.deleted",
      "resourceType": "pass_type",
      "action": "deleted",
      "requiredScopes": [
        "pass_type:read"
      ],
      "description": "pass type deleted."
    },
    {
      "type": "ticket_type.created",
      "resourceType": "ticket_type",
      "action": "created",
      "requiredScopes": [
        "ticket_type:read"
      ],
      "description": "ticket type created."
    },
    {
      "type": "ticket_type.updated",
      "resourceType": "ticket_type",
      "action": "updated",
      "requiredScopes": [
        "ticket_type:read"
      ],
      "description": "ticket type updated."
    },
    {
      "type": "ticket_type.deleted",
      "resourceType": "ticket_type",
      "action": "deleted",
      "requiredScopes": [
        "ticket_type:read"
      ],
      "description": "ticket type deleted."
    },
    {
      "type": "set_list.created",
      "resourceType": "set_list",
      "action": "created",
      "requiredScopes": [
        "set_list:read"
      ],
      "description": "set list created."
    },
    {
      "type": "set_list.updated",
      "resourceType": "set_list",
      "action": "updated",
      "requiredScopes": [
        "set_list:read"
      ],
      "description": "set list updated."
    },
    {
      "type": "set_list.deleted",
      "resourceType": "set_list",
      "action": "deleted",
      "requiredScopes": [
        "set_list:read"
      ],
      "description": "set list deleted."
    },
    {
      "type": "set_list_item.created",
      "resourceType": "set_list_item",
      "action": "created",
      "requiredScopes": [
        "set_list_item:read"
      ],
      "description": "set list item created."
    },
    {
      "type": "set_list_item.updated",
      "resourceType": "set_list_item",
      "action": "updated",
      "requiredScopes": [
        "set_list_item:read"
      ],
      "description": "set list item updated."
    },
    {
      "type": "set_list_item.deleted",
      "resourceType": "set_list_item",
      "action": "deleted",
      "requiredScopes": [
        "set_list_item:read"
      ],
      "description": "set list item deleted."
    },
    {
      "type": "set_list_item.retired",
      "resourceType": "set_list_item",
      "action": "retired",
      "requiredScopes": [
        "set_list_item:read"
      ],
      "description": "Set list item retired."
    },
    {
      "type": "set_list_item.restored",
      "resourceType": "set_list_item",
      "action": "restored",
      "requiredScopes": [
        "set_list_item:read"
      ],
      "description": "Set list item restored."
    },
    {
      "type": "team_member.created",
      "resourceType": "team_member",
      "action": "created",
      "requiredScopes": [
        "member:read"
      ],
      "description": "Team invitation accepted and member created."
    },
    {
      "type": "team_member.updated",
      "resourceType": "team_member",
      "action": "updated",
      "requiredScopes": [
        "member:read"
      ],
      "description": "Team member role or permissions changed."
    },
    {
      "type": "team_member.deleted",
      "resourceType": "team_member",
      "action": "deleted",
      "requiredScopes": [
        "member:read"
      ],
      "description": "Team member removed."
    },
    {
      "type": "team_invitation.created",
      "resourceType": "team_invitation",
      "action": "created",
      "requiredScopes": [
        "member:read"
      ],
      "description": "Team invitation created."
    },
    {
      "type": "team_invitation.deleted",
      "resourceType": "team_invitation",
      "action": "deleted",
      "requiredScopes": [
        "member:read"
      ],
      "description": "Team invitation is no longer pending."
    }
  ],
  "paths": {
    "/v1/webhook-event-types": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "operationId": "listWebhookEventTypes",
        "x-roadops-order": 0,
        "summary": "List webhook event types",
        "description": "Lists the versioned public webhook events and required resource read scopes.",
        "security": [
          {
            "personalAccessToken": [
              "webhook:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "webhook:read"
            ]
          }
        ],
        "responses": {
          "200": {
            "description": "Webhook event catalog",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookEventTypeListResponse"
                },
                "examples": {
                  "Day event types": {
                    "value": {
                      "data": [
                        {
                          "type": "day.updated",
                          "resourceType": "day",
                          "action": "updated",
                          "requiredScopes": [
                            "day:read"
                          ],
                          "description": "A day was updated."
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/webhooks": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "operationId": "createWebhook",
        "x-roadops-order": 1,
        "summary": "Create a webhook",
        "description": "Creates a user-owned endpoint. The signing secret is returned once. Selected event types also require their resource read scopes.",
        "security": [
          {
            "personalAccessToken": [
              "webhook:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "webhook:write"
            ]
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookCreateRequest"
              },
              "examples": {
                "Create a day webhook": {
                  "value": {
                    "name": "Production integrations",
                    "url": "https://integrations.example.com/roadops/webhooks",
                    "bindings": [
                      {
                        "teamId": "00000000-0000-4000-8000-000000000902",
                        "eventTypes": [
                          "day.created",
                          "day.updated",
                          "day.deleted"
                        ]
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Webhook created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookSecretResponse"
                },
                "examples": {
                  "Create a day webhook": {
                    "value": {
                      "webhook": {
                        "id": "00000000-0000-4000-8000-000000000901",
                        "name": "Production integrations",
                        "url": "https://integrations.example.com/roadops/webhooks",
                        "status": "active",
                        "bindings": [
                          {
                            "teamId": "00000000-0000-4000-8000-000000000902",
                            "eventTypes": [
                              "day.created",
                              "day.updated",
                              "day.deleted"
                            ],
                            "status": "active"
                          }
                        ],
                        "consecutiveExhaustedDeliveries": 0,
                        "createdAt": "2026-08-18T12:00:00.000Z",
                        "updatedAt": "2026-08-18T12:00:00.000Z"
                      },
                      "secret": "whsec_example_shown_only_once_1234567890"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Webhooks"
        ],
        "operationId": "listWebhooks",
        "x-roadops-order": 2,
        "summary": "List webhooks",
        "description": "Lists webhook endpoints owned by the authenticated user.",
        "security": [
          {
            "personalAccessToken": [
              "webhook:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "webhook:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return. Defaults to 50 and is capped at 200.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by page.nextCursor from the previous list response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Owned webhooks",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookListResponse"
                },
                "examples": {
                  "Owned endpoints": {
                    "value": {
                      "data": [
                        {
                          "id": "00000000-0000-4000-8000-000000000901",
                          "name": "Production integrations",
                          "url": "https://integrations.example.com/roadops/webhooks",
                          "status": "active",
                          "bindings": [
                            {
                              "teamId": "00000000-0000-4000-8000-000000000902",
                              "eventTypes": [
                                "day.created",
                                "day.updated",
                                "day.deleted"
                              ],
                              "status": "active"
                            }
                          ],
                          "consecutiveExhaustedDeliveries": 0,
                          "createdAt": "2026-08-18T12:00:00.000Z",
                          "updatedAt": "2026-08-18T12:00:00.000Z"
                        }
                      ],
                      "page": {
                        "limit": 50,
                        "nextCursor": null
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/webhooks/{webhookId}": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "operationId": "getWebhook",
        "x-roadops-order": 3,
        "summary": "Get a webhook",
        "description": "Returns an endpoint owned by the authenticated user.",
        "security": [
          {
            "personalAccessToken": [
              "webhook:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "webhook:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "webhookId",
            "in": "path",
            "required": true,
            "description": "Webhook endpoint identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Webhook",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookResponse"
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Webhooks"
        ],
        "operationId": "patchWebhook",
        "x-roadops-order": 4,
        "summary": "Update a webhook",
        "description": "Updates an endpoint owned by the authenticated user.",
        "security": [
          {
            "personalAccessToken": [
              "webhook:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "webhook:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "webhookId",
            "in": "path",
            "required": true,
            "description": "Webhook endpoint identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WebhookUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Webhook",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookResponse"
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Webhooks"
        ],
        "operationId": "deleteWebhook",
        "x-roadops-order": 5,
        "summary": "Delete a webhook",
        "description": "Deletes an endpoint owned by the authenticated user.",
        "security": [
          {
            "personalAccessToken": [
              "webhook:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "webhook:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "webhookId",
            "in": "path",
            "required": true,
            "description": "Webhook endpoint identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Webhook deleted"
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/webhooks/{webhookId}/rotate-secret": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "operationId": "rotateWebhookSecret",
        "x-roadops-order": 6,
        "summary": "Rotate a webhook secret",
        "description": "Creates a new signing secret while accepting the previous secret for 24 hours.",
        "security": [
          {
            "personalAccessToken": [
              "webhook:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "webhook:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "webhookId",
            "in": "path",
            "required": true,
            "description": "Webhook endpoint identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Rotated one-time secret",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookSecretResponse"
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/webhooks/{webhookId}/test": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "operationId": "testWebhook",
        "x-roadops-order": 7,
        "summary": "Send a test delivery",
        "description": "Queues an asynchronous signed webhook.test delivery.",
        "security": [
          {
            "personalAccessToken": [
              "webhook:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "webhook:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "webhookId",
            "in": "path",
            "required": true,
            "description": "Webhook endpoint identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Test queued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookDeliveryResponse"
                },
                "examples": {
                  "Queue a test delivery": {
                    "value": {
                      "data": {
                        "id": "00000000-0000-4000-8000-000000000903",
                        "webhookId": "00000000-0000-4000-8000-000000000901",
                        "teamId": "00000000-0000-4000-8000-000000000902",
                        "eventId": "00000000-0000-4000-8000-000000000904",
                        "eventType": "webhook.test",
                        "resourceId": "00000000-0000-4000-8000-000000000905",
                        "aggregateVersion": 4,
                        "cursor": 2842,
                        "status": "pending",
                        "retryable": false,
                        "attemptCount": 0,
                        "createdAt": "2026-08-18T12:01:00.000Z",
                        "updatedAt": "2026-08-18T12:01:00.000Z"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/webhooks/{webhookId}/deliveries": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "operationId": "listWebhookDeliveries",
        "x-roadops-order": 8,
        "summary": "List webhook deliveries",
        "description": "Lists recent delivery attempts without retaining payload bodies.",
        "security": [
          {
            "personalAccessToken": [
              "webhook:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "webhook:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "webhookId",
            "in": "path",
            "required": true,
            "description": "Webhook endpoint identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return. Defaults to 50 and is capped at 200.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by page.nextCursor from the previous list response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Delivery history",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookDeliveryListResponse"
                },
                "examples": {
                  "Recent deliveries": {
                    "value": {
                      "data": [
                        {
                          "id": "00000000-0000-4000-8000-000000000903",
                          "webhookId": "00000000-0000-4000-8000-000000000901",
                          "teamId": "00000000-0000-4000-8000-000000000902",
                          "eventId": "00000000-0000-4000-8000-000000000904",
                          "eventType": "day.updated",
                          "resourceId": "00000000-0000-4000-8000-000000000905",
                          "aggregateVersion": 4,
                          "cursor": 2842,
                          "status": "succeeded",
                          "retryable": false,
                          "attemptCount": 1,
                          "lastAttemptAt": "2026-08-18T12:01:00.000Z",
                          "lastResponseStatus": 204,
                          "createdAt": "2026-08-18T12:01:00.000Z",
                          "updatedAt": "2026-08-18T12:01:00.000Z"
                        }
                      ],
                      "page": {
                        "limit": 50,
                        "nextCursor": null
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/webhooks/{webhookId}/deliveries/{deliveryId}": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "operationId": "getWebhookDelivery",
        "x-roadops-order": 9,
        "summary": "Get a webhook delivery",
        "description": "Returns delivery status and response metadata.",
        "security": [
          {
            "personalAccessToken": [
              "webhook:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "webhook:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "webhookId",
            "in": "path",
            "required": true,
            "description": "Webhook endpoint identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "description": "Webhook delivery identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Webhook delivery",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookDeliveryResponse"
                },
                "examples": {
                  "Successful delivery": {
                    "value": {
                      "data": {
                        "id": "00000000-0000-4000-8000-000000000903",
                        "webhookId": "00000000-0000-4000-8000-000000000901",
                        "teamId": "00000000-0000-4000-8000-000000000902",
                        "eventId": "00000000-0000-4000-8000-000000000904",
                        "eventType": "day.updated",
                        "resourceId": "00000000-0000-4000-8000-000000000905",
                        "aggregateVersion": 4,
                        "cursor": 2842,
                        "status": "succeeded",
                        "retryable": false,
                        "attemptCount": 1,
                        "lastAttemptAt": "2026-08-18T12:01:00.000Z",
                        "lastResponseStatus": 204,
                        "createdAt": "2026-08-18T12:01:00.000Z",
                        "updatedAt": "2026-08-18T12:01:00.000Z"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/webhooks/{webhookId}/deliveries/{deliveryId}/retry": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "operationId": "retryWebhookDelivery",
        "x-roadops-order": 10,
        "summary": "Retry a webhook delivery",
        "description": "Queues an owned exhausted or suppressed delivery for another asynchronous attempt. A pending delivery is also retryable after the active queue retry window has safely elapsed.",
        "security": [
          {
            "personalAccessToken": [
              "webhook:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "webhook:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "webhookId",
            "in": "path",
            "required": true,
            "description": "Webhook endpoint identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "description": "Webhook delivery identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Retry queued",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WebhookDeliveryResponse"
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/health": {
      "get": {
        "tags": [
          "System"
        ],
        "operationId": "healthCheck",
        "x-roadops-order": 11,
        "summary": "Developer API health check",
        "description": "Returns service health for monitoring.",
        "responses": {
          "200": {
            "description": "Healthy",
            "content": {
              "application/json": {
                "examples": {
                  "Healthy": {
                    "value": {
                      "status": "ok"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/postman": {
      "get": {
        "tags": [
          "System"
        ],
        "operationId": "downloadPostmanCollection",
        "x-roadops-order": 12,
        "summary": "Download Postman collection",
        "description": "Downloads a generated Postman collection for the RoadOps Developer API.",
        "responses": {
          "200": {
            "description": "Postman collection",
            "content": {
              "application/json": {
                "examples": {
                  "Collection": {
                    "value": {
                      "info": {
                        "name": "RoadOps Developer API",
                        "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
                      },
                      "variable": [
                        {
                          "key": "baseUrl",
                          "value": "https://api.roadops.app/v1",
                          "type": "string"
                        },
                        {
                          "key": "token",
                          "value": "",
                          "type": "string"
                        }
                      ],
                      "item": []
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/me": {
      "get": {
        "tags": [
          "Current User"
        ],
        "operationId": "getCurrentUserProfile",
        "x-roadops-order": 13,
        "summary": "Get the current user",
        "description": "Returns basic profile information for the authenticated RoadOps user. Any valid personal access token or OAuth access token may call this endpoint; no permission scope is required.",
        "security": [
          {
            "personalAccessToken": []
          },
          {
            "roadOpsOAuth": []
          }
        ],
        "responses": {
          "200": {
            "description": "Current user profile",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentUserProfileResponse"
                },
                "examples": {
                  "Current user": {
                    "value": {
                      "data": {
                        "id": "00000000-0000-4000-8000-000000000201",
                        "firstName": "Alex",
                        "lastName": "Morgan",
                        "email": "alex@example.com",
                        "nickname": "Alex",
                        "picture": "https://assets.roadops.app/public/profiles/alex.jpg"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/pats": {
      "get": {
        "tags": [
          "Personal Access Tokens"
        ],
        "operationId": "listPersonalAccessTokens",
        "x-roadops-order": 14,
        "summary": "List personal access tokens",
        "description": "Lists personal access tokens owned by the authenticated developer portal user.",
        "security": [
          {
            "developerPortalSession": []
          }
        ],
        "responses": {
          "200": {
            "description": "PAT list",
            "content": {
              "application/json": {
                "examples": {
                  "List tokens": {
                    "value": {
                      "data": []
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Personal Access Tokens"
        ],
        "operationId": "createPersonalAccessToken",
        "x-roadops-order": 15,
        "summary": "Create a personal access token",
        "description": "Creates a scoped personal access token for API authentication.",
        "security": [
          {
            "developerPortalSession": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PatCreateRequest"
              },
              "examples": {
                "Create token": {
                  "value": {
                    "name": "Planner sync",
                    "scopes": [
                      "read:all"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created PAT",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PatCreateResponse"
                },
                "examples": {
                  "Create token": {
                    "value": {
                      "token": "ro_live_00000000000040008000000000000001_secret",
                      "personalAccessToken": {
                        "id": "00000000-0000-4000-8000-000000000001",
                        "name": "Planner sync",
                        "prefix": "ro_live",
                        "scopes": [
                          "read:all"
                        ],
                        "status": "active",
                        "createdAt": "2026-06-30T12:00:00.000Z"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/oauth-apps": {
      "get": {
        "tags": [
          "OAuth Applications"
        ],
        "operationId": "listOAuthApplications",
        "x-roadops-order": 16,
        "summary": "List OAuth applications",
        "description": "Lists OAuth applications owned by the authenticated developer portal user.",
        "security": [
          {
            "developerPortalSession": []
          }
        ],
        "responses": {
          "200": {
            "description": "OAuth application list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthAppListResponse"
                },
                "examples": {
                  "List applications": {
                    "value": {
                      "data": []
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "OAuth Applications"
        ],
        "operationId": "createOAuthApplication",
        "x-roadops-order": 17,
        "summary": "Create an OAuth application",
        "description": "Creates a third-party RoadOps OAuth application. A confidential client secret is returned only in this response.",
        "security": [
          {
            "developerPortalSession": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OAuthAppCreateRequest"
              },
              "examples": {
                "Create web application": {
                  "value": {
                    "name": "Tour planner",
                    "appType": "regular_web",
                    "callbackUrls": [
                      "https://planner.example.com/oauth/callback"
                    ],
                    "allowedOrigins": [
                      "https://planner.example.com"
                    ],
                    "webOrigins": [
                      "https://planner.example.com"
                    ],
                    "offlineAccess": false,
                    "scopes": [
                      "team:read",
                      "day:read"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created OAuth application",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthAppCreateResponse"
                },
                "examples": {
                  "Create web application": {
                    "value": {
                      "application": {
                        "clientId": "tpc_example",
                        "name": "Tour planner",
                        "appType": "regular_web",
                        "callbackUrls": [
                          "https://planner.example.com/oauth/callback"
                        ],
                        "allowedOrigins": [
                          "https://planner.example.com"
                        ],
                        "webOrigins": [
                          "https://planner.example.com"
                        ],
                        "offlineAccess": false,
                        "scopes": [
                          "team:read",
                          "day:read"
                        ],
                        "status": "active",
                        "createdAt": "2026-08-14T12:00:00.000Z",
                        "updatedAt": "2026-08-14T12:00:00.000Z"
                      },
                      "clientSecret": "shown-once"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/oauth-apps/{clientId}": {
      "get": {
        "tags": [
          "OAuth Applications"
        ],
        "operationId": "getOAuthApplication",
        "x-roadops-order": 18,
        "summary": "Get an OAuth application",
        "description": "Returns an OAuth application owned by the authenticated developer portal user.",
        "security": [
          {
            "developerPortalSession": []
          }
        ],
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "required": true,
            "description": "RoadOps OAuth client ID."
          }
        ],
        "responses": {
          "200": {
            "description": "OAuth application",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicOAuthApp"
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "OAuth Applications"
        ],
        "operationId": "updateOAuthApplication",
        "x-roadops-order": 19,
        "summary": "Update an OAuth application",
        "description": "Updates the mutable settings and scopes an owned application may request. Existing tokens retain their original scopes.",
        "security": [
          {
            "developerPortalSession": []
          }
        ],
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "required": true,
            "description": "RoadOps OAuth client ID."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OAuthAppUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Updated OAuth application",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicOAuthApp"
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "OAuth Applications"
        ],
        "operationId": "deleteOAuthApplication",
        "x-roadops-order": 20,
        "summary": "Delete an OAuth application",
        "description": "Disables the owned application immediately and removes its OAuth client registration.",
        "security": [
          {
            "developerPortalSession": []
          }
        ],
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "required": true,
            "description": "RoadOps OAuth client ID."
          }
        ],
        "responses": {
          "204": {
            "description": "OAuth application deleted"
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/oauth-apps/{clientId}/rotate-secret": {
      "post": {
        "tags": [
          "OAuth Applications"
        ],
        "operationId": "rotateOAuthApplicationSecret",
        "x-roadops-order": 21,
        "summary": "Rotate an OAuth application secret",
        "description": "Rotates a confidential client's secret and returns it once.",
        "security": [
          {
            "developerPortalSession": []
          }
        ],
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "required": true,
            "description": "RoadOps OAuth client ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Rotated client secret",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OAuthAppRotateSecretResponse"
                },
                "examples": {
                  "Rotated secret": {
                    "value": {
                      "clientId": "tpc_example",
                      "clientSecret": "shown-once"
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams": {
      "get": {
        "tags": [
          "Teams"
        ],
        "operationId": "listTeams",
        "x-roadops-order": 22,
        "summary": "List teams",
        "description": "Lists active teams visible to the token owner by default.",
        "security": [
          {
            "personalAccessToken": [
              "team:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "team:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "includeArchived",
            "in": "query",
            "description": "Set to true to include archived teams. Defaults to false.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return. Defaults to 50 and is capped at 200.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by page.nextCursor from the previous list response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Team list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamListResponse"
                },
                "examples": {
                  "List teams": {
                    "value": {
                      "data": [
                        {
                          "id": "00000000-0000-4000-8000-000000000100",
                          "name": "RoadOps Touring",
                          "role": "admin",
                          "status": "active",
                          "organizationStatus": "active",
                          "version": 14,
                          "cursor": 87234
                        }
                      ],
                      "page": {
                        "limit": 50,
                        "nextCursor": null
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/days": {
      "get": {
        "tags": [
          "Days"
        ],
        "operationId": "listDays",
        "x-roadops-order": 23,
        "summary": "List days",
        "description": "Lists day records for a team.",
        "security": [
          {
            "personalAccessToken": [
              "day:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "day:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "description": "Optional inclusive start date filter in YYYY-MM-DD format.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "description": "Optional inclusive end date filter in YYYY-MM-DD format.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "includeHistorical",
            "in": "query",
            "description": "Set to true to include historical days when no startDate or endDate is provided. Defaults to false.",
            "schema": {
              "type": "boolean"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return. Defaults to 50 and is capped at 200.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by page.nextCursor from the previous list response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Day list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DayListResponse"
                },
                "examples": {
                  "List days": {
                    "value": {
                      "data": [
                        {
                          "id": "00000000-0000-4000-8000-000000000201",
                          "name": "Nashville",
                          "date": "2026-09-14",
                          "timezone": "America/Chicago",
                          "location": "Nashville, TN",
                          "color": "#2E6F40",
                          "visibility": {
                            "groupIds": [
                              "00000000-0000-4000-8000-000000000701"
                            ],
                            "userIds": [
                              "00000000-0000-4000-8000-000000000702"
                            ]
                          },
                          "latitude": 36.1627,
                          "longitude": -86.7816,
                          "orgId": "00000000-0000-4000-8000-000000000100",
                          "isDeleted": false,
                          "version": 1,
                          "cursor": 87234
                        }
                      ],
                      "page": {
                        "limit": 50,
                        "nextCursor": null
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Days"
        ],
        "operationId": "createDay",
        "x-roadops-order": 24,
        "summary": "Create a day",
        "description": "Accepts a command to create a day.",
        "security": [
          {
            "personalAccessToken": [
              "day:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "day:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDayRequest"
              },
              "examples": {
                "Create day": {
                  "value": {
                    "id": "00000000-0000-4000-8000-000000000201",
                    "name": "Nashville",
                    "date": "2026-09-14",
                    "timezone": "America/Chicago",
                    "location": "Nashville, TN",
                    "color": "#2E6F40",
                    "visibility": {
                      "groupIds": [
                        "00000000-0000-4000-8000-000000000701"
                      ],
                      "userIds": [
                        "00000000-0000-4000-8000-000000000702"
                      ]
                    },
                    "latitude": 36.1627,
                    "longitude": -86.7816
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Create day": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000201",
                      "resourceType": "day",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/days/{dayId}": {
      "get": {
        "tags": [
          "Days"
        ],
        "operationId": "getDay",
        "x-roadops-order": 25,
        "summary": "Retrieve a day",
        "description": "Returns a single day record by ID.",
        "security": [
          {
            "personalAccessToken": [
              "day:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "day:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Day",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DayResponse"
                },
                "examples": {
                  "Retrieve day": {
                    "value": {
                      "data": {
                        "id": "00000000-0000-4000-8000-000000000201",
                        "name": "Nashville",
                        "date": "2026-09-14",
                        "timezone": "America/Chicago",
                        "location": "Nashville, TN",
                        "color": "#2E6F40",
                        "visibility": {
                          "groupIds": [
                            "00000000-0000-4000-8000-000000000701"
                          ],
                          "userIds": [
                            "00000000-0000-4000-8000-000000000702"
                          ]
                        },
                        "latitude": 36.1627,
                        "longitude": -86.7816,
                        "orgId": "00000000-0000-4000-8000-000000000100",
                        "isDeleted": false,
                        "version": 1,
                        "cursor": 87234
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Days"
        ],
        "operationId": "updateDay",
        "x-roadops-order": 26,
        "summary": "Update a day",
        "description": "Accepts a command to update a day.",
        "security": [
          {
            "personalAccessToken": [
              "day:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "day:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDayRequest"
              },
              "examples": {
                "Update day": {
                  "value": {
                    "updates": {
                      "location": "Bridgestone Arena"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Update day": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000201",
                      "resourceType": "day",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Days"
        ],
        "operationId": "deleteDay",
        "x-roadops-order": 27,
        "summary": "Delete a day",
        "description": "Accepts a command to delete a day.",
        "security": [
          {
            "personalAccessToken": [
              "day:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "day:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Delete day": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000201",
                      "resourceType": "day",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/days/{dayId}/schedule-items": {
      "get": {
        "tags": [
          "Schedule Items"
        ],
        "operationId": "listScheduleItems",
        "x-roadops-order": 28,
        "summary": "List schedule items",
        "description": "Lists general schedule items, drives, flights, and trains for a day.",
        "security": [
          {
            "personalAccessToken": [
              "schedule_item:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "schedule_item:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return. Defaults to 50 and is capped at 200.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by page.nextCursor from the previous list response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Schedule item list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScheduleItemListResponse"
                },
                "examples": {
                  "List schedule items": {
                    "value": {
                      "data": [
                        {
                          "id": "00000000-0000-4000-8000-000000000301",
                          "dayId": "00000000-0000-4000-8000-000000000201",
                          "name": "Load in",
                          "type": "general",
                          "status": "confirmed",
                          "priority": "normal",
                          "startTime": "2026-09-14T15:00:00.000Z",
                          "endTime": "2026-09-14T16:00:00.000Z",
                          "startTimezone": "America/Chicago",
                          "endTimezone": "America/Chicago",
                          "details": {
                            "kind": "general",
                            "location": {
                              "label": "Loading dock"
                            }
                          },
                          "notes": "Stage door is off 5th Avenue.",
                          "orgId": "00000000-0000-4000-8000-000000000100",
                          "isDeleted": false,
                          "version": 1,
                          "cursor": 87234
                        }
                      ],
                      "page": {
                        "limit": 50,
                        "nextCursor": null
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Schedule Items"
        ],
        "operationId": "createScheduleItem",
        "x-roadops-order": 29,
        "summary": "Create a schedule item",
        "description": "Accepts a command to create a general schedule item, drive, flight, or train. The type field must match details.kind.",
        "security": [
          {
            "personalAccessToken": [
              "schedule_item:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "schedule_item:write"
            ]
          }
        ],
        "x-roadops-doc-variants": [
          {
            "operationId": "createGeneralScheduleItem",
            "summary": "Create a general schedule item",
            "description": "Accepts a command to create a general schedule item. Use `type: \"general\"` with `details.kind: \"general\"`.",
            "requestSchemaName": "GeneralScheduleItemCreateRequest",
            "examples": {
              "Create general item": {
                "request": {
                  "id": "00000000-0000-4000-8000-000000000301",
                  "dayId": "00000000-0000-4000-8000-000000000201",
                  "name": "Load in",
                  "type": "general",
                  "status": "confirmed",
                  "priority": "normal",
                  "startTime": "2026-09-14T15:00:00.000Z",
                  "endTime": "2026-09-14T16:00:00.000Z",
                  "startTimezone": "America/Chicago",
                  "endTimezone": "America/Chicago",
                  "details": {
                    "kind": "general",
                    "location": {
                      "label": "Loading dock"
                    }
                  },
                  "notes": "Stage door is off 5th Avenue."
                },
                "response": {
                  "commandId": "00000000-0000-4000-8000-000000000010",
                  "resourceId": "00000000-0000-4000-8000-000000000301",
                  "resourceType": "schedule_item",
                  "status": "applied",
                  "aggregateVersion": 2,
                  "cursor": 87234,
                  "links": {
                    "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/schedule-items/00000000-0000-4000-8000-000000000301"
                  }
                }
              }
            }
          },
          {
            "operationId": "createDriveScheduleItem",
            "summary": "Create a drive schedule item",
            "description": "Accepts a command to create a drive schedule item. Use `type: \"drive\"` with `details.kind: \"drive\"`. The optional `details.stops` array is the ordered route between origin and destination; each stop has a stable UUID and RoadOps location.",
            "requestSchemaName": "DriveScheduleItemCreateRequest",
            "examples": {
              "Create drive": {
                "request": {
                  "id": "00000000-0000-4000-8000-000000000302",
                  "dayId": "00000000-0000-4000-8000-000000000201",
                  "name": "Hotel to venue",
                  "type": "drive",
                  "status": "confirmed",
                  "priority": "normal",
                  "startTime": "2026-09-14T17:00:00.000Z",
                  "endTime": "2026-09-14T17:25:00.000Z",
                  "startTimezone": "America/Chicago",
                  "endTimezone": "America/Chicago",
                  "details": {
                    "kind": "drive",
                    "transportMode": "car_service",
                    "provider": "Nashville Touring Transport",
                    "origin": {
                      "label": "Hotel",
                      "address": "401 Union St, Nashville, TN",
                      "timezone": "America/Chicago"
                    },
                    "stops": [
                      {
                        "id": "00000000-0000-4000-8000-000000000312",
                        "location": {
                          "label": "Production office",
                          "address": "201 Rep. John Lewis Way S, Nashville, TN",
                          "timezone": "America/Chicago"
                        }
                      }
                    ],
                    "destination": {
                      "label": "Venue",
                      "address": "116 Rep. John Lewis Way N, Nashville, TN",
                      "timezone": "America/Chicago"
                    },
                    "distanceMiles": 1.2,
                    "durationMinutes": 25,
                    "vehicle": "Sprinter"
                  }
                },
                "response": {
                  "commandId": "00000000-0000-4000-8000-000000000010",
                  "resourceId": "00000000-0000-4000-8000-000000000302",
                  "resourceType": "schedule_item",
                  "status": "applied",
                  "aggregateVersion": 2,
                  "cursor": 87234,
                  "links": {
                    "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/schedule-items/00000000-0000-4000-8000-000000000302"
                  }
                }
              }
            }
          },
          {
            "operationId": "createFlightScheduleItem",
            "summary": "Create a flight schedule item",
            "description": "Accepts a command to create a flight schedule item. Use `type: \"flight\"` with `details.kind: \"flight\"` and flight-specific passenger, confirmation, aircraft, and connection fields.",
            "requestSchemaName": "FlightScheduleItemCreateRequest",
            "examples": {
              "Create flight": {
                "request": {
                  "id": "00000000-0000-4000-8000-000000000303",
                  "dayId": "00000000-0000-4000-8000-000000000201",
                  "name": "Flight to Nashville",
                  "type": "flight",
                  "status": "confirmed",
                  "priority": "high",
                  "startTime": "2026-09-14T13:00:00.000Z",
                  "endTime": "2026-09-14T14:35:00.000Z",
                  "startTimezone": "America/New_York",
                  "endTimezone": "America/Chicago",
                  "details": {
                    "kind": "flight",
                    "flightType": "commercial",
                    "confirmationNumber": "ABC123",
                    "passengers": [
                      "00000000-0000-4000-8000-000000000401"
                    ],
                    "connections": [
                      {
                        "airline": "Delta",
                        "flightNumber": "DL1234",
                        "origin": {
                          "code": "LGA",
                          "name": "LaGuardia Airport"
                        },
                        "destination": {
                          "code": "BNA",
                          "name": "Nashville International Airport"
                        },
                        "departureTime": "2026-09-14T13:00:00.000Z",
                        "departureTimezone": "America/New_York",
                        "arrivalTime": "2026-09-14T14:35:00.000Z",
                        "arrivalTimezone": "America/Chicago"
                      }
                    ]
                  }
                },
                "response": {
                  "commandId": "00000000-0000-4000-8000-000000000010",
                  "resourceId": "00000000-0000-4000-8000-000000000303",
                  "resourceType": "schedule_item",
                  "status": "applied",
                  "aggregateVersion": 2,
                  "cursor": 87234,
                  "links": {
                    "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/schedule-items/00000000-0000-4000-8000-000000000303"
                  }
                }
              }
            }
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScheduleItemCreateRequest"
              },
              "examples": {
                "Create general item": {
                  "value": {
                    "id": "00000000-0000-4000-8000-000000000301",
                    "dayId": "00000000-0000-4000-8000-000000000201",
                    "name": "Load in",
                    "type": "general",
                    "status": "confirmed",
                    "priority": "normal",
                    "startTime": "2026-09-14T15:00:00.000Z",
                    "endTime": "2026-09-14T16:00:00.000Z",
                    "startTimezone": "America/Chicago",
                    "endTimezone": "America/Chicago",
                    "details": {
                      "kind": "general",
                      "location": {
                        "label": "Loading dock"
                      }
                    },
                    "notes": "Stage door is off 5th Avenue."
                  }
                },
                "Create drive": {
                  "value": {
                    "id": "00000000-0000-4000-8000-000000000302",
                    "dayId": "00000000-0000-4000-8000-000000000201",
                    "name": "Hotel to venue",
                    "type": "drive",
                    "status": "confirmed",
                    "priority": "normal",
                    "startTime": "2026-09-14T17:00:00.000Z",
                    "endTime": "2026-09-14T17:25:00.000Z",
                    "startTimezone": "America/Chicago",
                    "endTimezone": "America/Chicago",
                    "details": {
                      "kind": "drive",
                      "transportMode": "car_service",
                      "provider": "Nashville Touring Transport",
                      "origin": {
                        "label": "Hotel",
                        "address": "401 Union St, Nashville, TN",
                        "timezone": "America/Chicago"
                      },
                      "stops": [
                        {
                          "id": "00000000-0000-4000-8000-000000000312",
                          "location": {
                            "label": "Production office",
                            "address": "201 Rep. John Lewis Way S, Nashville, TN",
                            "timezone": "America/Chicago"
                          }
                        }
                      ],
                      "destination": {
                        "label": "Venue",
                        "address": "116 Rep. John Lewis Way N, Nashville, TN",
                        "timezone": "America/Chicago"
                      },
                      "distanceMiles": 1.2,
                      "durationMinutes": 25,
                      "vehicle": "Sprinter"
                    }
                  }
                },
                "Create flight": {
                  "value": {
                    "id": "00000000-0000-4000-8000-000000000303",
                    "dayId": "00000000-0000-4000-8000-000000000201",
                    "name": "Flight to Nashville",
                    "type": "flight",
                    "status": "confirmed",
                    "priority": "high",
                    "startTime": "2026-09-14T13:00:00.000Z",
                    "endTime": "2026-09-14T14:35:00.000Z",
                    "startTimezone": "America/New_York",
                    "endTimezone": "America/Chicago",
                    "details": {
                      "kind": "flight",
                      "flightType": "commercial",
                      "confirmationNumber": "ABC123",
                      "passengers": [
                        "00000000-0000-4000-8000-000000000401"
                      ],
                      "connections": [
                        {
                          "airline": "Delta",
                          "flightNumber": "DL1234",
                          "origin": {
                            "code": "LGA",
                            "name": "LaGuardia Airport"
                          },
                          "destination": {
                            "code": "BNA",
                            "name": "Nashville International Airport"
                          },
                          "departureTime": "2026-09-14T13:00:00.000Z",
                          "departureTimezone": "America/New_York",
                          "arrivalTime": "2026-09-14T14:35:00.000Z",
                          "arrivalTimezone": "America/Chicago"
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Create general item": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000301",
                      "resourceType": "schedule_item",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/schedule-items/00000000-0000-4000-8000-000000000301"
                      }
                    }
                  },
                  "Create drive": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000302",
                      "resourceType": "schedule_item",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/schedule-items/00000000-0000-4000-8000-000000000302"
                      }
                    }
                  },
                  "Create flight": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000303",
                      "resourceType": "schedule_item",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/schedule-items/00000000-0000-4000-8000-000000000303"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/days/{dayId}/schedule-items/{scheduleItemId}": {
      "get": {
        "tags": [
          "Schedule Items"
        ],
        "operationId": "getScheduleItem",
        "x-roadops-order": 30,
        "summary": "Retrieve a schedule item",
        "description": "Returns one general schedule item, drive, flight, or train by ID.",
        "security": [
          {
            "personalAccessToken": [
              "schedule_item:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "schedule_item:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "scheduleItemId",
            "in": "path",
            "required": true,
            "description": "Schedule item identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Schedule item",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ScheduleItemResponse"
                },
                "examples": {
                  "Retrieve schedule item": {
                    "value": {
                      "data": {
                        "id": "00000000-0000-4000-8000-000000000301",
                        "dayId": "00000000-0000-4000-8000-000000000201",
                        "name": "Load in",
                        "type": "general",
                        "status": "confirmed",
                        "priority": "normal",
                        "startTime": "2026-09-14T15:00:00.000Z",
                        "endTime": "2026-09-14T16:00:00.000Z",
                        "startTimezone": "America/Chicago",
                        "endTimezone": "America/Chicago",
                        "details": {
                          "kind": "general",
                          "location": {
                            "label": "Loading dock"
                          }
                        },
                        "notes": "Stage door is off 5th Avenue.",
                        "orgId": "00000000-0000-4000-8000-000000000100",
                        "isDeleted": false,
                        "version": 1,
                        "cursor": 87234
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Schedule Items"
        ],
        "operationId": "updateScheduleItem",
        "x-roadops-order": 32,
        "summary": "Update a schedule item",
        "description": "Accepts a command to update a general schedule item, drive, or flight.",
        "security": [
          {
            "personalAccessToken": [
              "schedule_item:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "schedule_item:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "scheduleItemId",
            "in": "path",
            "required": true,
            "description": "Schedule item identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScheduleItemUpdateRequest"
              },
              "examples": {
                "Update general item": {
                  "value": {
                    "updates": {
                      "notes": "Use stage-left entrance."
                    }
                  }
                },
                "Update drive": {
                  "value": {
                    "updates": {
                      "details": {
                        "kind": "drive",
                        "transportMode": "car_service",
                        "provider": "Nashville Touring Transport",
                        "origin": {
                          "label": "Hotel",
                          "address": "401 Union St, Nashville, TN",
                          "timezone": "America/Chicago"
                        },
                        "stops": [
                          {
                            "id": "00000000-0000-4000-8000-000000000312",
                            "location": {
                              "label": "Production office",
                              "address": "201 Rep. John Lewis Way S, Nashville, TN",
                              "timezone": "America/Chicago"
                            }
                          }
                        ],
                        "destination": {
                          "label": "Venue",
                          "address": "116 Rep. John Lewis Way N, Nashville, TN",
                          "timezone": "America/Chicago"
                        },
                        "distanceMiles": 1.2,
                        "durationMinutes": 25,
                        "vehicle": "SUV"
                      }
                    }
                  }
                },
                "Update flight": {
                  "value": {
                    "updates": {
                      "details": {
                        "kind": "flight",
                        "flightType": "commercial",
                        "confirmationNumber": "XYZ789",
                        "passengers": [
                          "00000000-0000-4000-8000-000000000401"
                        ],
                        "connections": [
                          {
                            "airline": "Delta",
                            "flightNumber": "DL1234",
                            "origin": {
                              "code": "LGA",
                              "name": "LaGuardia Airport"
                            },
                            "destination": {
                              "code": "BNA",
                              "name": "Nashville International Airport"
                            },
                            "departureTime": "2026-09-14T13:00:00.000Z",
                            "departureTimezone": "America/New_York",
                            "arrivalTime": "2026-09-14T14:35:00.000Z",
                            "arrivalTimezone": "America/Chicago"
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Update general item": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000301",
                      "resourceType": "schedule_item",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/schedule-items/00000000-0000-4000-8000-000000000301"
                      }
                    }
                  },
                  "Update drive": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000302",
                      "resourceType": "schedule_item",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/schedule-items/00000000-0000-4000-8000-000000000302"
                      }
                    }
                  },
                  "Update flight": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000303",
                      "resourceType": "schedule_item",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/schedule-items/00000000-0000-4000-8000-000000000303"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Schedule Items"
        ],
        "operationId": "deleteScheduleItem",
        "x-roadops-order": 33,
        "summary": "Delete a schedule item",
        "description": "Accepts a command to delete a schedule item, drive, or flight.",
        "security": [
          {
            "personalAccessToken": [
              "schedule_item:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "schedule_item:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "scheduleItemId",
            "in": "path",
            "required": true,
            "description": "Schedule item identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Delete schedule item": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000301",
                      "resourceType": "schedule_item",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/schedule-items/00000000-0000-4000-8000-000000000301"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/days/{dayId}/schedule-items/{scheduleItemId}/reschedule": {
      "post": {
        "tags": [
          "Schedule Items"
        ],
        "operationId": "rescheduleScheduleItem",
        "x-roadops-order": 31,
        "summary": "Reschedule a schedule item",
        "description": "Moves a schedule item to new start and end times. Use this endpoint specifically for time changes rather than general schedule item edits. If the move changes an item occurring within a user's 24h or 48h schedule notice window, RoadOps sends push notifications to users who have schedule notifications enabled.",
        "security": [
          {
            "personalAccessToken": [
              "schedule_item:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "schedule_item:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "scheduleItemId",
            "in": "path",
            "required": true,
            "description": "Schedule item identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScheduleItemRescheduleRequest"
              },
              "examples": {
                "Reschedule schedule item": {
                  "value": {
                    "startTime": "2026-09-14T16:00:00.000Z",
                    "endTime": "2026-09-14T17:00:00.000Z",
                    "startTimezone": "America/Chicago",
                    "endTimezone": "America/Chicago"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Reschedule schedule item": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000301",
                      "resourceType": "schedule_item",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/schedule-items/00000000-0000-4000-8000-000000000301"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/days/{dayId}/events": {
      "get": {
        "tags": [
          "Events"
        ],
        "operationId": "listEvents",
        "x-roadops-order": 34,
        "summary": "List events",
        "description": "Lists event records for a day.",
        "security": [
          {
            "personalAccessToken": [
              "event:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "event:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return. Defaults to 50 and is capped at 200.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by page.nextCursor from the previous list response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Event list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventListResponse"
                },
                "examples": {
                  "List events": {
                    "value": {
                      "data": [
                        {
                          "id": "00000000-0000-4000-8000-000000000601",
                          "dayId": "00000000-0000-4000-8000-000000000201",
                          "venueId": "00000000-0000-4000-8000-000000000701",
                          "name": "Show",
                          "notes": "Main performance event.",
                          "visibility": {
                            "userIds": [
                              "00000000-0000-4000-8000-000000000101"
                            ]
                          },
                          "orgId": "00000000-0000-4000-8000-000000000100",
                          "contacts": [],
                          "laborCalls": [],
                          "guestList": {
                            "enabled": true,
                            "ticketsAllotted": null,
                            "cutoffAt": null,
                            "willCallPickupInstructions": null,
                            "seats": [],
                            "ticketTypeAllotments": []
                          },
                          "isDeleted": false,
                          "version": 1,
                          "cursor": 87234
                        }
                      ],
                      "page": {
                        "limit": 50,
                        "nextCursor": null
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Events"
        ],
        "operationId": "createEvent",
        "x-roadops-order": 35,
        "summary": "Create an event",
        "description": "Accepts a command to create an event for a day.",
        "security": [
          {
            "personalAccessToken": [
              "event:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "event:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventCreateRequest"
              },
              "examples": {
                "Create event": {
                  "value": {
                    "id": "00000000-0000-4000-8000-000000000601",
                    "dayId": "00000000-0000-4000-8000-000000000201",
                    "venueId": "00000000-0000-4000-8000-000000000701",
                    "name": "Show",
                    "notes": "Main performance event.",
                    "visibility": {
                      "userIds": [
                        "00000000-0000-4000-8000-000000000101"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Create event": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000601",
                      "resourceType": "event",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/events/00000000-0000-4000-8000-000000000601"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/days/{dayId}/events/{eventId}": {
      "get": {
        "tags": [
          "Events"
        ],
        "operationId": "getEvent",
        "x-roadops-order": 36,
        "summary": "Retrieve an event",
        "description": "Returns one event record by ID.",
        "security": [
          {
            "personalAccessToken": [
              "event:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "event:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "eventId",
            "in": "path",
            "required": true,
            "description": "Event identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Event",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventResponse"
                },
                "examples": {
                  "Retrieve event": {
                    "value": {
                      "data": {
                        "id": "00000000-0000-4000-8000-000000000601",
                        "dayId": "00000000-0000-4000-8000-000000000201",
                        "venueId": "00000000-0000-4000-8000-000000000701",
                        "name": "Show",
                        "notes": "Main performance event.",
                        "visibility": {
                          "userIds": [
                            "00000000-0000-4000-8000-000000000101"
                          ]
                        },
                        "orgId": "00000000-0000-4000-8000-000000000100",
                        "contacts": [],
                        "laborCalls": [],
                        "guestList": {
                          "enabled": true,
                          "ticketsAllotted": null,
                          "cutoffAt": null,
                          "willCallPickupInstructions": null,
                          "seats": [],
                          "ticketTypeAllotments": []
                        },
                        "isDeleted": false,
                        "version": 1,
                        "cursor": 87234
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Events"
        ],
        "operationId": "updateEvent",
        "x-roadops-order": 37,
        "summary": "Update an event",
        "description": "Accepts a command to update event fields.",
        "security": [
          {
            "personalAccessToken": [
              "event:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "event:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "eventId",
            "in": "path",
            "required": true,
            "description": "Event identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventUpdateRequest"
              },
              "examples": {
                "Update event": {
                  "value": {
                    "updates": {
                      "notes": "Doors moved to 7:30 PM.",
                      "visibility": null
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Update event": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000601",
                      "resourceType": "event",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/events/00000000-0000-4000-8000-000000000601"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Events"
        ],
        "operationId": "deleteEvent",
        "x-roadops-order": 38,
        "summary": "Delete an event",
        "description": "Accepts a command to delete an event.",
        "security": [
          {
            "personalAccessToken": [
              "event:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "event:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "eventId",
            "in": "path",
            "required": true,
            "description": "Event identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Delete event": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000601",
                      "resourceType": "event",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/events/00000000-0000-4000-8000-000000000601"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/venues": {
      "get": {
        "tags": [
          "Venues"
        ],
        "operationId": "listVenues",
        "x-roadops-order": 39,
        "summary": "List venues",
        "description": "Lists venue records visible to the token owner for a team.",
        "security": [
          {
            "personalAccessToken": [
              "venue:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "venue:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return. Defaults to 50 and is capped at 200.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by page.nextCursor from the previous list response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Venue list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VenueListResponse"
                },
                "examples": {
                  "List venues": {
                    "value": {
                      "data": [
                        {
                          "id": "00000000-0000-4000-8000-000000000701",
                          "officialName": "Ryman Auditorium",
                          "displayName": "The Ryman",
                          "previousNames": [],
                          "address": "116 Rep. John Lewis Way N, Nashville, TN 37219",
                          "timezone": "America/Chicago",
                          "capacity": {
                            "total": 2362
                          },
                          "contacts": [],
                          "externalRefs": [],
                          "tags": [
                            "theater"
                          ],
                          "notes": "Historic venue in downtown Nashville.",
                          "orgId": "00000000-0000-4000-8000-000000000100",
                          "metadata": {
                            "status": "active",
                            "visibility": "org_only",
                            "source": "org",
                            "dataMode": "org_local",
                            "createdAt": "2026-09-01T12:00:00.000Z",
                            "updatedAt": "2026-09-01T12:00:00.000Z"
                          },
                          "isDeleted": false,
                          "version": 1,
                          "cursor": 87234
                        }
                      ],
                      "page": {
                        "limit": 50,
                        "nextCursor": null
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Venues"
        ],
        "operationId": "createVenue",
        "x-roadops-order": 41,
        "summary": "Create a venue",
        "description": "Accepts a command to create a venue for a team.",
        "security": [
          {
            "personalAccessToken": [
              "venue:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "venue:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VenueCreateRequest"
              },
              "examples": {
                "Create venue": {
                  "value": {
                    "id": "00000000-0000-4000-8000-000000000701",
                    "officialName": "Ryman Auditorium",
                    "displayName": "The Ryman",
                    "previousNames": [],
                    "address": "116 Rep. John Lewis Way N, Nashville, TN 37219",
                    "timezone": "America/Chicago",
                    "capacity": {
                      "total": 2362
                    },
                    "contacts": [],
                    "externalRefs": [],
                    "tags": [
                      "theater"
                    ],
                    "notes": "Historic venue in downtown Nashville."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Create venue": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000701",
                      "resourceType": "venue",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/venues/00000000-0000-4000-8000-000000000701"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/venues/search": {
      "get": {
        "tags": [
          "Venues"
        ],
        "operationId": "searchVenues",
        "x-roadops-order": 40,
        "summary": "Search venues",
        "description": "Searches the team's local venue records.",
        "security": [
          {
            "personalAccessToken": [
              "venue:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "venue:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "query",
            "in": "query",
            "required": true,
            "description": "Local venue search query. Matches the team's venue search index.",
            "schema": {
              "type": "string",
              "minLength": 2,
              "maxLength": 120
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of local venue records to return. Defaults to 10 and is capped at 20.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 20,
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Venue search results",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VenueSearchResponse"
                },
                "examples": {
                  "Search venues": {
                    "value": {
                      "data": [
                        {
                          "id": "00000000-0000-4000-8000-000000000701",
                          "officialName": "Ryman Auditorium",
                          "displayName": "The Ryman",
                          "previousNames": [],
                          "address": "116 Rep. John Lewis Way N, Nashville, TN 37219",
                          "timezone": "America/Chicago",
                          "capacity": {
                            "total": 2362
                          },
                          "contacts": [],
                          "externalRefs": [],
                          "tags": [
                            "theater"
                          ],
                          "notes": "Historic venue in downtown Nashville.",
                          "orgId": "00000000-0000-4000-8000-000000000100",
                          "metadata": {
                            "status": "active",
                            "visibility": "org_only",
                            "source": "org",
                            "dataMode": "org_local",
                            "createdAt": "2026-09-01T12:00:00.000Z",
                            "updatedAt": "2026-09-01T12:00:00.000Z"
                          },
                          "isDeleted": false,
                          "version": 1,
                          "cursor": 87234
                        }
                      ],
                      "meta": {
                        "query": "ryman",
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/venues/{venueId}": {
      "get": {
        "tags": [
          "Venues"
        ],
        "operationId": "getVenue",
        "x-roadops-order": 42,
        "summary": "Retrieve a venue",
        "description": "Returns one venue record by ID.",
        "security": [
          {
            "personalAccessToken": [
              "venue:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "venue:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "venueId",
            "in": "path",
            "required": true,
            "description": "Venue identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Venue",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VenueResponse"
                },
                "examples": {
                  "Retrieve venue": {
                    "value": {
                      "data": {
                        "id": "00000000-0000-4000-8000-000000000701",
                        "officialName": "Ryman Auditorium",
                        "displayName": "The Ryman",
                        "previousNames": [],
                        "address": "116 Rep. John Lewis Way N, Nashville, TN 37219",
                        "timezone": "America/Chicago",
                        "capacity": {
                          "total": 2362
                        },
                        "contacts": [],
                        "externalRefs": [],
                        "tags": [
                          "theater"
                        ],
                        "notes": "Historic venue in downtown Nashville.",
                        "orgId": "00000000-0000-4000-8000-000000000100",
                        "metadata": {
                          "status": "active",
                          "visibility": "org_only",
                          "source": "org",
                          "dataMode": "org_local",
                          "createdAt": "2026-09-01T12:00:00.000Z",
                          "updatedAt": "2026-09-01T12:00:00.000Z"
                        },
                        "isDeleted": false,
                        "version": 1,
                        "cursor": 87234
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Venues"
        ],
        "operationId": "updateVenue",
        "x-roadops-order": 43,
        "summary": "Update a venue",
        "description": "Accepts a command to update venue profile fields.",
        "security": [
          {
            "personalAccessToken": [
              "venue:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "venue:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "venueId",
            "in": "path",
            "required": true,
            "description": "Venue identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VenueUpdateRequest"
              },
              "examples": {
                "Update venue": {
                  "value": {
                    "data": {
                      "displayName": "Ryman Auditorium"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Update venue": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000701",
                      "resourceType": "venue",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/venues/00000000-0000-4000-8000-000000000701"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Venues"
        ],
        "operationId": "deleteVenue",
        "x-roadops-order": 44,
        "summary": "Delete a venue",
        "description": "Accepts a command to delete a venue.",
        "security": [
          {
            "personalAccessToken": [
              "venue:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "venue:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "venueId",
            "in": "path",
            "required": true,
            "description": "Venue identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VenueDeleteRequest"
              },
              "examples": {
                "Delete venue": {
                  "value": {
                    "reason": "Duplicate venue record."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Delete venue": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000701",
                      "resourceType": "venue",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/venues/00000000-0000-4000-8000-000000000701"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/days/{dayId}/events/{eventId}/guest-requests": {
      "get": {
        "tags": [
          "Guest Requests"
        ],
        "operationId": "listGuestRequests",
        "x-roadops-order": 45,
        "summary": "List guest requests",
        "description": "Lists guest request records for an event.",
        "security": [
          {
            "personalAccessToken": [
              "guest_request:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "guest_request:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "eventId",
            "in": "path",
            "required": true,
            "description": "Event identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return. Defaults to 50 and is capped at 200.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by page.nextCursor from the previous list response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Guest request list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GuestRequestListResponse"
                },
                "examples": {
                  "List guest requests": {
                    "value": {
                      "data": [
                        {
                          "id": "00000000-0000-4000-8000-000000000801",
                          "guestFirstName": "Jamie",
                          "guestLastName": "Lee",
                          "totalTickets": 2,
                          "status": "pending",
                          "pickupLocation": "will_call",
                          "attendeeContactEmail": "jamie@example.com",
                          "notes": "Guest of tour manager.",
                          "ticketType": {
                            "ticketTypeId": "00000000-0000-4000-8000-000000000961",
                            "nameAtRequest": "Reserved",
                            "abbreviationAtRequest": "RSV"
                          },
                          "passes": [
                            {
                              "passTypeId": "00000000-0000-4000-8000-000000000951",
                              "nameAtRequest": "All Access",
                              "abbreviationAtRequest": "AA",
                              "quantity": 2
                            }
                          ],
                          "assignedSeats": [],
                          "dayId": "00000000-0000-4000-8000-000000000201",
                          "eventId": "00000000-0000-4000-8000-000000000601",
                          "orgId": "00000000-0000-4000-8000-000000000100",
                          "isDeleted": false,
                          "createdBy": "00000000-0000-4000-8000-000000000101",
                          "createdByName": "Jamie Lee",
                          "createdAt": "2026-09-01T12:00:00.000Z",
                          "updatedAt": "2026-09-01T12:00:00.000Z",
                          "version": 1,
                          "cursor": 87234
                        }
                      ],
                      "page": {
                        "limit": 50,
                        "nextCursor": null
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Guest Requests"
        ],
        "operationId": "createGuestRequest",
        "x-roadops-order": 46,
        "summary": "Create a guest request",
        "description": "Accepts a command to create a guest request for an event.",
        "security": [
          {
            "personalAccessToken": [
              "guest_request:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "guest_request:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "eventId",
            "in": "path",
            "required": true,
            "description": "Event identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GuestRequestCreateRequest"
              },
              "examples": {
                "Create guest request": {
                  "value": {
                    "id": "00000000-0000-4000-8000-000000000801",
                    "guestFirstName": "Jamie",
                    "guestLastName": "Lee",
                    "totalTickets": 2,
                    "status": "pending",
                    "pickupLocation": "will_call",
                    "attendeeContactEmail": "jamie@example.com",
                    "notes": "Guest of tour manager.",
                    "ticketType": {
                      "ticketTypeId": "00000000-0000-4000-8000-000000000961"
                    },
                    "passes": [
                      {
                        "passTypeId": "00000000-0000-4000-8000-000000000951",
                        "quantity": 2
                      }
                    ],
                    "assignedSeats": []
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Create guest request": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000801",
                      "resourceType": "guest_request",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/events/00000000-0000-4000-8000-000000000601/guest-requests/00000000-0000-4000-8000-000000000801"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/days/{dayId}/events/{eventId}/guest-requests/{guestRequestId}": {
      "get": {
        "tags": [
          "Guest Requests"
        ],
        "operationId": "getGuestRequest",
        "x-roadops-order": 47,
        "summary": "Retrieve a guest request",
        "description": "Returns one guest request record by ID.",
        "security": [
          {
            "personalAccessToken": [
              "guest_request:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "guest_request:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "eventId",
            "in": "path",
            "required": true,
            "description": "Event identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "guestRequestId",
            "in": "path",
            "required": true,
            "description": "Guest request identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Guest request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GuestRequestResponse"
                },
                "examples": {
                  "Retrieve guest request": {
                    "value": {
                      "data": {
                        "id": "00000000-0000-4000-8000-000000000801",
                        "guestFirstName": "Jamie",
                        "guestLastName": "Lee",
                        "totalTickets": 2,
                        "status": "pending",
                        "pickupLocation": "will_call",
                        "attendeeContactEmail": "jamie@example.com",
                        "notes": "Guest of tour manager.",
                        "ticketType": {
                          "ticketTypeId": "00000000-0000-4000-8000-000000000961",
                          "nameAtRequest": "Reserved",
                          "abbreviationAtRequest": "RSV"
                        },
                        "passes": [
                          {
                            "passTypeId": "00000000-0000-4000-8000-000000000951",
                            "nameAtRequest": "All Access",
                            "abbreviationAtRequest": "AA",
                            "quantity": 2
                          }
                        ],
                        "assignedSeats": [],
                        "dayId": "00000000-0000-4000-8000-000000000201",
                        "eventId": "00000000-0000-4000-8000-000000000601",
                        "orgId": "00000000-0000-4000-8000-000000000100",
                        "isDeleted": false,
                        "createdBy": "00000000-0000-4000-8000-000000000101",
                        "createdByName": "Jamie Lee",
                        "createdAt": "2026-09-01T12:00:00.000Z",
                        "updatedAt": "2026-09-01T12:00:00.000Z",
                        "version": 1,
                        "cursor": 87234
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Guest Requests"
        ],
        "operationId": "updateGuestRequest",
        "x-roadops-order": 48,
        "summary": "Update a guest request",
        "description": "Accepts a command to update guest request fields.",
        "security": [
          {
            "personalAccessToken": [
              "guest_request:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "guest_request:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "eventId",
            "in": "path",
            "required": true,
            "description": "Event identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "guestRequestId",
            "in": "path",
            "required": true,
            "description": "Guest request identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GuestRequestUpdateRequest"
              },
              "examples": {
                "Update guest request": {
                  "value": {
                    "updates": {
                      "notes": "Add plus-one after approval.",
                      "ticketType": {
                        "ticketTypeId": "00000000-0000-4000-8000-000000000961"
                      },
                      "passes": [
                        {
                          "passTypeId": "00000000-0000-4000-8000-000000000951",
                          "quantity": 2
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Update guest request": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000801",
                      "resourceType": "guest_request",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/events/00000000-0000-4000-8000-000000000601/guest-requests/00000000-0000-4000-8000-000000000801"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Guest Requests"
        ],
        "operationId": "deleteGuestRequest",
        "x-roadops-order": 49,
        "summary": "Delete a guest request",
        "description": "Accepts a command to delete a guest request.",
        "security": [
          {
            "personalAccessToken": [
              "guest_request:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "guest_request:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "eventId",
            "in": "path",
            "required": true,
            "description": "Event identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "guestRequestId",
            "in": "path",
            "required": true,
            "description": "Guest request identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Delete guest request": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000801",
                      "resourceType": "guest_request",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/events/00000000-0000-4000-8000-000000000601/guest-requests/00000000-0000-4000-8000-000000000801"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/days/{dayId}/events/{eventId}/set-lists": {
      "get": {
        "tags": [
          "Set Lists"
        ],
        "operationId": "listSetLists",
        "x-roadops-order": 50,
        "summary": "List set lists",
        "description": "Lists set list records for an event.",
        "security": [
          {
            "personalAccessToken": [
              "set_list:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "set_list:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "eventId",
            "in": "path",
            "required": true,
            "description": "Event identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return. Defaults to 50 and is capped at 200.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by page.nextCursor from the previous list response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Set list list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SetListListResponse"
                },
                "examples": {
                  "List set lists": {
                    "value": {
                      "data": [
                        {
                          "id": "00000000-0000-4000-8000-000000000901",
                          "title": "Main set",
                          "visibility": {
                            "userIds": [
                              "00000000-0000-4000-8000-000000000101"
                            ]
                          },
                          "items": [
                            {
                              "id": "00000000-0000-4000-8000-000000000902",
                              "type": "libraryItem",
                              "setListItemId": "00000000-0000-4000-8000-000000000911",
                              "title": "Opening Song",
                              "durationSeconds": 240,
                              "printTitle": "Opening Song",
                              "notes": "Start with click track."
                            },
                            {
                              "id": "00000000-0000-4000-8000-000000000903",
                              "type": "break",
                              "title": "Intermission",
                              "durationSeconds": 900
                            }
                          ],
                          "dayId": "00000000-0000-4000-8000-000000000201",
                          "eventId": "00000000-0000-4000-8000-000000000601",
                          "orgId": "00000000-0000-4000-8000-000000000100",
                          "isDeleted": false,
                          "createdBy": "00000000-0000-4000-8000-000000000101",
                          "createdAt": "2026-09-01T12:00:00.000Z",
                          "updatedBy": "00000000-0000-4000-8000-000000000101",
                          "updatedAt": "2026-09-01T12:00:00.000Z",
                          "version": 1,
                          "cursor": 87234
                        }
                      ],
                      "page": {
                        "limit": 50,
                        "nextCursor": null
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Set Lists"
        ],
        "operationId": "createSetList",
        "x-roadops-order": 51,
        "summary": "Create a set list",
        "description": "Accepts a command to create a set list for an event.",
        "security": [
          {
            "personalAccessToken": [
              "set_list:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "set_list:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "eventId",
            "in": "path",
            "required": true,
            "description": "Event identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetListCreateRequest"
              },
              "examples": {
                "Create set list": {
                  "value": {
                    "id": "00000000-0000-4000-8000-000000000901",
                    "title": "Main set",
                    "visibility": {
                      "userIds": [
                        "00000000-0000-4000-8000-000000000101"
                      ]
                    },
                    "items": [
                      {
                        "id": "00000000-0000-4000-8000-000000000902",
                        "type": "libraryItem",
                        "setListItemId": "00000000-0000-4000-8000-000000000911",
                        "title": "Opening Song",
                        "durationSeconds": 240,
                        "printTitle": "Opening Song",
                        "notes": "Start with click track."
                      },
                      {
                        "id": "00000000-0000-4000-8000-000000000903",
                        "type": "break",
                        "title": "Intermission",
                        "durationSeconds": 900
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Create set list": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000901",
                      "resourceType": "set_list",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/events/00000000-0000-4000-8000-000000000601/set-lists/00000000-0000-4000-8000-000000000901"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/days/{dayId}/events/{eventId}/set-lists/{setListId}": {
      "get": {
        "tags": [
          "Set Lists"
        ],
        "operationId": "getSetList",
        "x-roadops-order": 52,
        "summary": "Retrieve a set list",
        "description": "Returns one set list record by ID.",
        "security": [
          {
            "personalAccessToken": [
              "set_list:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "set_list:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "eventId",
            "in": "path",
            "required": true,
            "description": "Event identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "setListId",
            "in": "path",
            "required": true,
            "description": "Set list identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Set list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SetListResponse"
                },
                "examples": {
                  "Retrieve set list": {
                    "value": {
                      "data": {
                        "id": "00000000-0000-4000-8000-000000000901",
                        "title": "Main set",
                        "visibility": {
                          "userIds": [
                            "00000000-0000-4000-8000-000000000101"
                          ]
                        },
                        "items": [
                          {
                            "id": "00000000-0000-4000-8000-000000000902",
                            "type": "libraryItem",
                            "setListItemId": "00000000-0000-4000-8000-000000000911",
                            "title": "Opening Song",
                            "durationSeconds": 240,
                            "printTitle": "Opening Song",
                            "notes": "Start with click track."
                          },
                          {
                            "id": "00000000-0000-4000-8000-000000000903",
                            "type": "break",
                            "title": "Intermission",
                            "durationSeconds": 900
                          }
                        ],
                        "dayId": "00000000-0000-4000-8000-000000000201",
                        "eventId": "00000000-0000-4000-8000-000000000601",
                        "orgId": "00000000-0000-4000-8000-000000000100",
                        "isDeleted": false,
                        "createdBy": "00000000-0000-4000-8000-000000000101",
                        "createdAt": "2026-09-01T12:00:00.000Z",
                        "updatedBy": "00000000-0000-4000-8000-000000000101",
                        "updatedAt": "2026-09-01T12:00:00.000Z",
                        "version": 1,
                        "cursor": 87234
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Set Lists"
        ],
        "operationId": "updateSetList",
        "x-roadops-order": 53,
        "summary": "Update a set list",
        "description": "Accepts a command to update set list fields.",
        "security": [
          {
            "personalAccessToken": [
              "set_list:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "set_list:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "eventId",
            "in": "path",
            "required": true,
            "description": "Event identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "setListId",
            "in": "path",
            "required": true,
            "description": "Set list identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetListUpdateRequest"
              },
              "examples": {
                "Update set list": {
                  "value": {
                    "updates": {
                      "title": "Encore set",
                      "visibility": null,
                      "items": [
                        {
                          "id": "00000000-0000-4000-8000-000000000904",
                          "type": "libraryItem",
                          "setListItemId": "00000000-0000-4000-8000-000000000911",
                          "title": "Encore Opener"
                        },
                        {
                          "id": "00000000-0000-4000-8000-000000000905",
                          "type": "break",
                          "title": "Band changeover",
                          "durationSeconds": 300
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Update set list": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000901",
                      "resourceType": "set_list",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/events/00000000-0000-4000-8000-000000000601/set-lists/00000000-0000-4000-8000-000000000901"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Set Lists"
        ],
        "operationId": "deleteSetList",
        "x-roadops-order": 54,
        "summary": "Delete a set list",
        "description": "Accepts a command to delete a set list.",
        "security": [
          {
            "personalAccessToken": [
              "set_list:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "set_list:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "eventId",
            "in": "path",
            "required": true,
            "description": "Event identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "setListId",
            "in": "path",
            "required": true,
            "description": "Set list identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Delete set list": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000901",
                      "resourceType": "set_list",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/events/00000000-0000-4000-8000-000000000601/set-lists/00000000-0000-4000-8000-000000000901"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/set-list-items": {
      "get": {
        "tags": [
          "Set List Items"
        ],
        "operationId": "listSetListItems",
        "x-roadops-order": 55,
        "summary": "List set list items",
        "description": "Lists reusable set list library items for a team.",
        "security": [
          {
            "personalAccessToken": [
              "set_list_item:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "set_list_item:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return. Defaults to 50 and is capped at 200.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by page.nextCursor from the previous list response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Set list item list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SetListItemListResponse"
                },
                "examples": {
                  "List set list items": {
                    "value": {
                      "data": [
                        {
                          "id": "00000000-0000-4000-8000-000000000911",
                          "title": "Opening Song",
                          "durationSeconds": 240,
                          "printTitle": "Opening Song",
                          "notes": "Start with click track.",
                          "orgId": "00000000-0000-4000-8000-000000000100",
                          "isRetired": false,
                          "isDeleted": false,
                          "createdBy": "00000000-0000-4000-8000-000000000101",
                          "createdAt": "2026-09-01T12:00:00.000Z",
                          "updatedBy": "00000000-0000-4000-8000-000000000101",
                          "updatedAt": "2026-09-01T12:00:00.000Z",
                          "version": 1,
                          "cursor": 87234
                        }
                      ],
                      "page": {
                        "limit": 50,
                        "nextCursor": null
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Set List Items"
        ],
        "operationId": "createSetListItem",
        "x-roadops-order": 56,
        "summary": "Create a set list item",
        "description": "Accepts a command to create a reusable set list library item.",
        "security": [
          {
            "personalAccessToken": [
              "set_list_item:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "set_list_item:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetListItemCreateRequest"
              },
              "examples": {
                "Create set list item": {
                  "value": {
                    "id": "00000000-0000-4000-8000-000000000911",
                    "title": "Opening Song",
                    "durationSeconds": 240,
                    "printTitle": "Opening Song",
                    "notes": "Start with click track."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Create set list item": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000911",
                      "resourceType": "set_list_item",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/set-list-items/00000000-0000-4000-8000-000000000911"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/set-list-items/{setListItemId}": {
      "get": {
        "tags": [
          "Set List Items"
        ],
        "operationId": "getSetListItem",
        "x-roadops-order": 57,
        "summary": "Retrieve a set list item",
        "description": "Returns one reusable set list library item by ID.",
        "security": [
          {
            "personalAccessToken": [
              "set_list_item:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "set_list_item:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "setListItemId",
            "in": "path",
            "required": true,
            "description": "Set list item identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Set list item",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SetListItemResponse"
                },
                "examples": {
                  "Retrieve set list item": {
                    "value": {
                      "data": {
                        "id": "00000000-0000-4000-8000-000000000911",
                        "title": "Opening Song",
                        "durationSeconds": 240,
                        "printTitle": "Opening Song",
                        "notes": "Start with click track.",
                        "orgId": "00000000-0000-4000-8000-000000000100",
                        "isRetired": false,
                        "isDeleted": false,
                        "createdBy": "00000000-0000-4000-8000-000000000101",
                        "createdAt": "2026-09-01T12:00:00.000Z",
                        "updatedBy": "00000000-0000-4000-8000-000000000101",
                        "updatedAt": "2026-09-01T12:00:00.000Z",
                        "version": 1,
                        "cursor": 87234
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Set List Items"
        ],
        "operationId": "updateSetListItem",
        "x-roadops-order": 58,
        "summary": "Update a set list item",
        "description": "Accepts a command to update reusable set list library item fields.",
        "security": [
          {
            "personalAccessToken": [
              "set_list_item:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "set_list_item:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "setListItemId",
            "in": "path",
            "required": true,
            "description": "Set list item identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetListItemUpdateRequest"
              },
              "examples": {
                "Update set list item": {
                  "value": {
                    "updates": {
                      "notes": "Move later in the set."
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Update set list item": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000911",
                      "resourceType": "set_list_item",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/set-list-items/00000000-0000-4000-8000-000000000911"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Set List Items"
        ],
        "operationId": "deleteSetListItem",
        "x-roadops-order": 59,
        "summary": "Delete a set list item",
        "description": "Accepts a command to delete a reusable set list library item.",
        "security": [
          {
            "personalAccessToken": [
              "set_list_item:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "set_list_item:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "setListItemId",
            "in": "path",
            "required": true,
            "description": "Set list item identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Delete set list item": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000911",
                      "resourceType": "set_list_item",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/set-list-items/00000000-0000-4000-8000-000000000911"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/set-list-items/{setListItemId}/retire": {
      "post": {
        "tags": [
          "Set List Items"
        ],
        "operationId": "retireSetListItem",
        "x-roadops-order": 60,
        "summary": "Retire a set list item",
        "description": "Accepts a command to retire a reusable set list library item without deleting it.",
        "security": [
          {
            "personalAccessToken": [
              "set_list_item:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "set_list_item:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "setListItemId",
            "in": "path",
            "required": true,
            "description": "Set list item identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetListItemLifecycleRequest"
              },
              "examples": {
                "Retire set list item": {
                  "value": {}
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Retire set list item": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000911",
                      "resourceType": "set_list_item",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/set-list-items/00000000-0000-4000-8000-000000000911"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/set-list-items/{setListItemId}/restore": {
      "post": {
        "tags": [
          "Set List Items"
        ],
        "operationId": "restoreSetListItem",
        "x-roadops-order": 61,
        "summary": "Restore a set list item",
        "description": "Accepts a command to restore a retired reusable set list library item.",
        "security": [
          {
            "personalAccessToken": [
              "set_list_item:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "set_list_item:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "setListItemId",
            "in": "path",
            "required": true,
            "description": "Set list item identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetListItemLifecycleRequest"
              },
              "examples": {
                "Restore set list item": {
                  "value": {}
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Restore set list item": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000911",
                      "resourceType": "set_list_item",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/set-list-items/00000000-0000-4000-8000-000000000911"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/lodging": {
      "get": {
        "tags": [
          "Lodging"
        ],
        "operationId": "listLodging",
        "x-roadops-order": 62,
        "summary": "List lodging",
        "description": "Lists lodging records for a team.",
        "security": [
          {
            "personalAccessToken": [
              "lodging:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "lodging:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "date",
            "in": "query",
            "description": "Optional local date filter in YYYY-MM-DD format. Returns lodging records whose local check-in/check-out date range overlaps this date.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return. Defaults to 50 and is capped at 200.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by page.nextCursor from the previous list response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lodging list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LodgingListResponse"
                },
                "examples": {
                  "List lodging": {
                    "value": {
                      "data": [
                        {
                          "id": "00000000-0000-4000-8000-000000000921",
                          "name": "Downtown Hotel",
                          "label": "Drivers",
                          "sortOrder": 1,
                          "confirmationNumber": "HTL123",
                          "location": {
                            "name": "Downtown Hotel",
                            "address": "401 Union St, Nashville, TN",
                            "timezone": "America/Chicago"
                          },
                          "checkInTime": "2026-09-14T20:00:00.000Z",
                          "checkOutTime": "2026-09-15T15:00:00.000Z",
                          "contacts": [],
                          "roomCount": 2,
                          "rooms": [
                            {
                              "id": "00000000-0000-4000-8000-000000000922",
                              "roomType": "King",
                              "confirmationNumber": "HTL123-1",
                              "checkInDate": "2026-09-14",
                              "checkOutDate": "2026-09-15",
                              "occupants": "Tour manager"
                            }
                          ],
                          "notes": "Late checkout requested.",
                          "orgId": "00000000-0000-4000-8000-000000000100",
                          "isDeleted": false,
                          "createdBy": "00000000-0000-4000-8000-000000000101",
                          "createdAt": "2026-09-01T12:00:00.000Z",
                          "updatedBy": "00000000-0000-4000-8000-000000000101",
                          "updatedAt": "2026-09-01T12:00:00.000Z",
                          "version": 1,
                          "cursor": 87234
                        }
                      ],
                      "page": {
                        "limit": 50,
                        "nextCursor": null
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Lodging"
        ],
        "operationId": "createLodging",
        "x-roadops-order": 63,
        "summary": "Create lodging",
        "description": "Accepts a command to create a lodging record.",
        "security": [
          {
            "personalAccessToken": [
              "lodging:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "lodging:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LodgingCreateRequest"
              },
              "examples": {
                "Create lodging": {
                  "value": {
                    "id": "00000000-0000-4000-8000-000000000921",
                    "name": "Downtown Hotel",
                    "label": "Drivers",
                    "sortOrder": 1,
                    "confirmationNumber": "HTL123",
                    "location": {
                      "name": "Downtown Hotel",
                      "address": "401 Union St, Nashville, TN",
                      "timezone": "America/Chicago"
                    },
                    "checkInTime": "2026-09-14T20:00:00.000Z",
                    "checkOutTime": "2026-09-15T15:00:00.000Z",
                    "contacts": [],
                    "roomCount": 2,
                    "rooms": [
                      {
                        "id": "00000000-0000-4000-8000-000000000922",
                        "roomType": "King",
                        "confirmationNumber": "HTL123-1",
                        "checkInDate": "2026-09-14",
                        "checkOutDate": "2026-09-15",
                        "occupants": "Tour manager"
                      }
                    ],
                    "notes": "Late checkout requested."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Create lodging": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000921",
                      "resourceType": "lodging",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/lodging/00000000-0000-4000-8000-000000000921"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/lodging/{lodgingId}": {
      "get": {
        "tags": [
          "Lodging"
        ],
        "operationId": "getLodging",
        "x-roadops-order": 64,
        "summary": "Retrieve lodging",
        "description": "Returns one lodging record by ID.",
        "security": [
          {
            "personalAccessToken": [
              "lodging:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "lodging:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "lodgingId",
            "in": "path",
            "required": true,
            "description": "Lodging identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Lodging",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LodgingResponse"
                },
                "examples": {
                  "Retrieve lodging": {
                    "value": {
                      "data": {
                        "id": "00000000-0000-4000-8000-000000000921",
                        "name": "Downtown Hotel",
                        "label": "Drivers",
                        "sortOrder": 1,
                        "confirmationNumber": "HTL123",
                        "location": {
                          "name": "Downtown Hotel",
                          "address": "401 Union St, Nashville, TN",
                          "timezone": "America/Chicago"
                        },
                        "checkInTime": "2026-09-14T20:00:00.000Z",
                        "checkOutTime": "2026-09-15T15:00:00.000Z",
                        "contacts": [],
                        "roomCount": 2,
                        "rooms": [
                          {
                            "id": "00000000-0000-4000-8000-000000000922",
                            "roomType": "King",
                            "confirmationNumber": "HTL123-1",
                            "checkInDate": "2026-09-14",
                            "checkOutDate": "2026-09-15",
                            "occupants": "Tour manager"
                          }
                        ],
                        "notes": "Late checkout requested.",
                        "orgId": "00000000-0000-4000-8000-000000000100",
                        "isDeleted": false,
                        "createdBy": "00000000-0000-4000-8000-000000000101",
                        "createdAt": "2026-09-01T12:00:00.000Z",
                        "updatedBy": "00000000-0000-4000-8000-000000000101",
                        "updatedAt": "2026-09-01T12:00:00.000Z",
                        "version": 1,
                        "cursor": 87234
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Lodging"
        ],
        "operationId": "updateLodging",
        "x-roadops-order": 65,
        "summary": "Update lodging",
        "description": "Accepts a command to update lodging fields.",
        "security": [
          {
            "personalAccessToken": [
              "lodging:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "lodging:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "lodgingId",
            "in": "path",
            "required": true,
            "description": "Lodging identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LodgingUpdateRequest"
              },
              "examples": {
                "Update lodging": {
                  "value": {
                    "updates": {
                      "label": "Drivers",
                      "sortOrder": 2,
                      "notes": "Late checkout confirmed."
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Update lodging": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000921",
                      "resourceType": "lodging",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/lodging/00000000-0000-4000-8000-000000000921"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Lodging"
        ],
        "operationId": "deleteLodging",
        "x-roadops-order": 66,
        "summary": "Delete lodging",
        "description": "Accepts a command to delete a lodging record.",
        "security": [
          {
            "personalAccessToken": [
              "lodging:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "lodging:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "lodgingId",
            "in": "path",
            "required": true,
            "description": "Lodging identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Delete lodging": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000921",
                      "resourceType": "lodging",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/lodging/00000000-0000-4000-8000-000000000921"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/rental-cars": {
      "get": {
        "tags": [
          "Rental Cars"
        ],
        "operationId": "listRentalCars",
        "x-roadops-order": 67,
        "summary": "List rental cars",
        "description": "Lists rental car records for a team.",
        "security": [
          {
            "personalAccessToken": [
              "rental_car:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "rental_car:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "date",
            "in": "query",
            "description": "Optional local date filter in YYYY-MM-DD format. Returns rentals whose pickup/drop-off date range overlaps this date.",
            "schema": {
              "type": "string",
              "format": "date"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return. Defaults to 50 and is capped at 200.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by page.nextCursor from the previous list response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Rental car list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RentalCarListResponse"
                },
                "examples": {
                  "List rental cars": {
                    "value": {
                      "data": [
                        {
                          "id": "00000000-0000-4000-8000-000000000923",
                          "companyName": "Avis",
                          "confirmationNumber": "CAR123",
                          "status": "confirmed",
                          "priority": "normal",
                          "pickupDate": "2026-09-14",
                          "pickupTime": "10:00",
                          "pickupLocation": {
                            "label": "Nashville International Airport",
                            "address": "1 Terminal Dr, Nashville, TN",
                            "timezone": "America/Chicago"
                          },
                          "dropoffDate": "2026-09-16",
                          "dropoffTime": "09:00",
                          "dropoffLocation": {
                            "label": "Nashville International Airport",
                            "address": "1 Terminal Dr, Nashville, TN",
                            "timezone": "America/Chicago"
                          },
                          "contacts": [],
                          "orgId": "00000000-0000-4000-8000-000000000100",
                          "pickupAt": "2026-09-14T15:00:00.000Z",
                          "dropoffAt": "2026-09-16T14:00:00.000Z",
                          "isDeleted": false,
                          "createdBy": "00000000-0000-4000-8000-000000000101",
                          "createdAt": "2026-09-01T12:00:00.000Z",
                          "version": 1,
                          "cursor": 87235
                        }
                      ],
                      "page": {
                        "limit": 50,
                        "nextCursor": null
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Rental Cars"
        ],
        "operationId": "createRentalCar",
        "x-roadops-order": 68,
        "summary": "Create a rental car",
        "description": "Accepts a command to create a rental car record.",
        "security": [
          {
            "personalAccessToken": [
              "rental_car:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "rental_car:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RentalCarCreateRequest"
              },
              "examples": {
                "Create rental car": {
                  "value": {
                    "id": "00000000-0000-4000-8000-000000000923",
                    "companyName": "Avis",
                    "confirmationNumber": "CAR123",
                    "status": "confirmed",
                    "priority": "normal",
                    "pickupDate": "2026-09-14",
                    "pickupTime": "10:00",
                    "pickupLocation": {
                      "label": "Nashville International Airport",
                      "address": "1 Terminal Dr, Nashville, TN",
                      "timezone": "America/Chicago"
                    },
                    "dropoffDate": "2026-09-16",
                    "dropoffTime": "09:00",
                    "dropoffLocation": {
                      "label": "Nashville International Airport",
                      "address": "1 Terminal Dr, Nashville, TN",
                      "timezone": "America/Chicago"
                    },
                    "contacts": []
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Create rental car": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000923",
                      "resourceType": "rental_car",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/rental_cars/00000000-0000-4000-8000-000000000923"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/rental-cars/{rentalCarId}": {
      "get": {
        "tags": [
          "Rental Cars"
        ],
        "operationId": "getRentalCar",
        "x-roadops-order": 69,
        "summary": "Retrieve a rental car",
        "description": "Returns one rental car record by ID.",
        "security": [
          {
            "personalAccessToken": [
              "rental_car:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "rental_car:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "rentalCarId",
            "in": "path",
            "required": true,
            "description": "Rental car identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Rental car",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RentalCarResponse"
                },
                "examples": {
                  "Retrieve rental car": {
                    "value": {
                      "data": {
                        "id": "00000000-0000-4000-8000-000000000923",
                        "companyName": "Avis",
                        "confirmationNumber": "CAR123",
                        "status": "confirmed",
                        "priority": "normal",
                        "pickupDate": "2026-09-14",
                        "pickupTime": "10:00",
                        "pickupLocation": {
                          "label": "Nashville International Airport",
                          "address": "1 Terminal Dr, Nashville, TN",
                          "timezone": "America/Chicago"
                        },
                        "dropoffDate": "2026-09-16",
                        "dropoffTime": "09:00",
                        "dropoffLocation": {
                          "label": "Nashville International Airport",
                          "address": "1 Terminal Dr, Nashville, TN",
                          "timezone": "America/Chicago"
                        },
                        "contacts": [],
                        "orgId": "00000000-0000-4000-8000-000000000100",
                        "pickupAt": "2026-09-14T15:00:00.000Z",
                        "dropoffAt": "2026-09-16T14:00:00.000Z",
                        "isDeleted": false,
                        "createdBy": "00000000-0000-4000-8000-000000000101",
                        "createdAt": "2026-09-01T12:00:00.000Z",
                        "version": 1,
                        "cursor": 87235
                      },
                      "meta": {
                        "cursor": 87235
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Rental Cars"
        ],
        "operationId": "updateRentalCar",
        "x-roadops-order": 70,
        "summary": "Update a rental car",
        "description": "Accepts a command to update rental car fields.",
        "security": [
          {
            "personalAccessToken": [
              "rental_car:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "rental_car:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "rentalCarId",
            "in": "path",
            "required": true,
            "description": "Rental car identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RentalCarUpdateRequest"
              },
              "examples": {
                "Update rental car": {
                  "value": {
                    "updates": {
                      "confirmationNumber": "CAR124"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Update rental car": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000923",
                      "resourceType": "rental_car",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/rental_cars/00000000-0000-4000-8000-000000000923"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Rental Cars"
        ],
        "operationId": "deleteRentalCar",
        "x-roadops-order": 71,
        "summary": "Delete a rental car",
        "description": "Accepts a command to delete a rental car record.",
        "security": [
          {
            "personalAccessToken": [
              "rental_car:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "rental_car:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "rentalCarId",
            "in": "path",
            "required": true,
            "description": "Rental car identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Delete rental car": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000923",
                      "resourceType": "rental_car",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/rental_cars/00000000-0000-4000-8000-000000000923"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/members": {
      "get": {
        "tags": [
          "Members"
        ],
        "operationId": "listMembers",
        "x-roadops-order": 72,
        "summary": "List members",
        "description": "Lists active team members.",
        "security": [
          {
            "personalAccessToken": [
              "member:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "member:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return. Defaults to 50 and is capped at 200.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by page.nextCursor from the previous list response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Member list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemberListResponse"
                },
                "examples": {
                  "List members": {
                    "value": {
                      "data": [
                        {
                          "id": "00000000-0000-4000-8000-000000000932",
                          "orgId": "00000000-0000-4000-8000-000000000100",
                          "membershipId": "00000000-0000-4000-8000-000000000933",
                          "userId": "00000000-0000-4000-8000-000000000932",
                          "role": "user",
                          "scopes": [
                            "days:view",
                            "schedule-travel:view",
                            "notes:view",
                            "notes:manage-own",
                            "events-venues:view",
                            "set-lists:view",
                            "guest-list:view-own",
                            "guest-list:manage-own",
                            "lodging:view",
                            "files:view",
                            "team-members:view"
                          ],
                          "permissionsVersion": 1,
                          "status": "active",
                          "joinedAt": "2026-09-01T12:00:00.000Z",
                          "grantedAt": "2026-09-01T12:00:00.000Z",
                          "grantedBy": "00000000-0000-4000-8000-000000000101",
                          "memberName": "Crew Member",
                          "givenName": "Crew",
                          "familyName": "Member",
                          "memberEmail": "crew@example.com",
                          "memberPicture": "https://assets.roadops.app/public/profiles/crew-member.jpg",
                          "scheduleNoticeWindow": "24h",
                          "automaticRemovalDate": "2026-10-01",
                          "version": 1,
                          "membershipVersion": 1,
                          "cursor": 87234
                        }
                      ],
                      "page": {
                        "limit": 50,
                        "nextCursor": null
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Members"
        ],
        "operationId": "createMember",
        "x-roadops-order": 73,
        "summary": "Invite a member",
        "description": "Accepts a command to invite a team member. The active member record becomes available after the invitation is accepted and projected.",
        "security": [
          {
            "personalAccessToken": [
              "member:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "member:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MemberCreateRequest"
              },
              "examples": {
                "Invite member": {
                  "value": {
                    "invitationId": "00000000-0000-4000-8000-000000000931",
                    "email": "crew@example.com",
                    "role": "user",
                    "message": "Welcome to the tour.",
                    "automaticRemovalDate": "2026-10-01"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Invite member": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000931",
                      "resourceType": "member_invitation",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/invitations"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/invitations": {
      "get": {
        "tags": [
          "Members"
        ],
        "operationId": "listMemberInvitations",
        "x-roadops-order": 74,
        "summary": "List invitations",
        "description": "Lists the team's pending member invitations and their current status. Requires Team Members Manage access. Invitation tokens are never returned.",
        "security": [
          {
            "personalAccessToken": [
              "member:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "member:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return. Defaults to 50 and is capped at 200.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by page.nextCursor from the previous list response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Pending member invitation list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemberInvitationListResponse"
                },
                "examples": {
                  "List invitations": {
                    "value": {
                      "data": [
                        {
                          "id": "00000000-0000-4000-8000-000000000931",
                          "orgId": "00000000-0000-4000-8000-000000000100",
                          "email": "new.member@example.com",
                          "role": "user",
                          "scopes": [
                            "days:view",
                            "schedule-travel:view",
                            "notes:view",
                            "notes:manage-own",
                            "events-venues:view",
                            "set-lists:view",
                            "guest-list:view-own",
                            "guest-list:manage-own",
                            "lodging:view",
                            "files:view",
                            "team-members:view"
                          ],
                          "permissionsVersion": 1,
                          "status": "pending",
                          "message": "Welcome to the tour.",
                          "invitedBy": "00000000-0000-4000-8000-000000000932",
                          "invitedByEmail": "tour.manager@example.com",
                          "invitedByName": "Tour Manager",
                          "invitedAt": "2026-08-13T14:30:00.000Z",
                          "expiresAt": "2026-08-20T14:30:00.000Z",
                          "version": 1,
                          "cursor": 87234
                        }
                      ],
                      "page": {
                        "limit": 50,
                        "nextCursor": null
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/invitations/{invitationId}": {
      "delete": {
        "tags": [
          "Members"
        ],
        "operationId": "deleteMemberInvitation",
        "x-roadops-order": 75,
        "summary": "Remove an invitation",
        "description": "Accepts a command to revoke a pending team member invitation. Requires Team Members Manage access.",
        "security": [
          {
            "personalAccessToken": [
              "member:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "member:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "invitationId",
            "in": "path",
            "required": true,
            "description": "Invitation identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Remove invitation": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000931",
                      "resourceType": "member_invitation",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/invitations"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/members/{memberId}": {
      "get": {
        "tags": [
          "Members"
        ],
        "operationId": "getMember",
        "x-roadops-order": 76,
        "summary": "Retrieve a member",
        "description": "Returns one active team member by ID.",
        "security": [
          {
            "personalAccessToken": [
              "member:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "member:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "memberId",
            "in": "path",
            "required": true,
            "description": "Member identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Member",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemberResponse"
                },
                "examples": {
                  "Retrieve member": {
                    "value": {
                      "data": {
                        "id": "00000000-0000-4000-8000-000000000932",
                        "orgId": "00000000-0000-4000-8000-000000000100",
                        "membershipId": "00000000-0000-4000-8000-000000000933",
                        "userId": "00000000-0000-4000-8000-000000000932",
                        "role": "user",
                        "scopes": [
                          "days:view",
                          "schedule-travel:view",
                          "notes:view",
                          "notes:manage-own",
                          "events-venues:view",
                          "set-lists:view",
                          "guest-list:view-own",
                          "guest-list:manage-own",
                          "lodging:view",
                          "files:view",
                          "team-members:view"
                        ],
                        "permissionsVersion": 1,
                        "status": "active",
                        "joinedAt": "2026-09-01T12:00:00.000Z",
                        "grantedAt": "2026-09-01T12:00:00.000Z",
                        "grantedBy": "00000000-0000-4000-8000-000000000101",
                        "memberName": "Crew Member",
                        "givenName": "Crew",
                        "familyName": "Member",
                        "memberEmail": "crew@example.com",
                        "memberPicture": "https://assets.roadops.app/public/profiles/crew-member.jpg",
                        "scheduleNoticeWindow": "24h",
                        "automaticRemovalDate": "2026-10-01",
                        "version": 1,
                        "membershipVersion": 1,
                        "cursor": 87234
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Members"
        ],
        "operationId": "updateMember",
        "x-roadops-order": 78,
        "summary": "Update a member",
        "description": "Accepts one or more commands to update member role and automatic removal settings.",
        "security": [
          {
            "personalAccessToken": [
              "member:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "member:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "memberId",
            "in": "path",
            "required": true,
            "description": "Member identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MemberUpdateRequest"
              },
              "examples": {
                "Update member": {
                  "value": {
                    "role": "admin",
                    "automaticRemovalDate": null
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Update member": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000932",
                      "resourceType": "member",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/members"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Members"
        ],
        "operationId": "deleteMember",
        "x-roadops-order": 79,
        "summary": "Remove a member",
        "description": "Accepts a command to remove an active team member.",
        "security": [
          {
            "personalAccessToken": [
              "member:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "member:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "memberId",
            "in": "path",
            "required": true,
            "description": "Member identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Remove member": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000932",
                      "resourceType": "member",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/members"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/members/{memberId}/profile": {
      "get": {
        "tags": [
          "Members"
        ],
        "operationId": "getMemberProfile",
        "x-roadops-order": 77,
        "summary": "Retrieve a member profile",
        "description": "Returns the member profile fields visible to the token user based on each profile field's visibility setting.",
        "security": [
          {
            "personalAccessToken": [
              "member:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "member:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "memberId",
            "in": "path",
            "required": true,
            "description": "Member identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Member profile",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MemberProfileResponse"
                },
                "examples": {
                  "Retrieve member profile": {
                    "value": {
                      "data": {
                        "id": "00000000-0000-4000-8000-000000000932",
                        "orgId": "00000000-0000-4000-8000-000000000100",
                        "membershipId": "00000000-0000-4000-8000-000000000933",
                        "userId": "00000000-0000-4000-8000-000000000932",
                        "memberName": "Crew Member",
                        "givenName": "Crew",
                        "familyName": "Member",
                        "memberEmail": "crew@example.com",
                        "memberPicture": "https://assets.roadops.app/public/profiles/crew-member.jpg",
                        "fields": {
                          "firstName": {
                            "value": "Crew",
                            "visibility": "org-members",
                            "updatedBy": {
                              "actorId": "00000000-0000-4000-8000-000000000932",
                              "actorType": "user"
                            },
                            "updatedAt": "2026-09-01T12:00:00.000Z"
                          },
                          "lastName": {
                            "value": "Member",
                            "visibility": "org-members",
                            "updatedBy": {
                              "actorId": "00000000-0000-4000-8000-000000000932",
                              "actorType": "user"
                            },
                            "updatedAt": "2026-09-01T12:00:00.000Z"
                          },
                          "emergencyContact": {
                            "value": {
                              "name": "Tour Manager",
                              "relationship": "Manager",
                              "phone": "+1 615-555-0100",
                              "email": "tour.manager@example.com"
                            },
                            "visibility": "org-admins",
                            "updatedBy": {
                              "actorId": "00000000-0000-4000-8000-000000000932",
                              "actorType": "user"
                            },
                            "updatedAt": "2026-09-01T12:00:00.000Z"
                          },
                          "busBunkPreference": {
                            "value": {
                              "side": "driver-side",
                              "bunk": "top",
                              "position": "front"
                            },
                            "visibility": "org-admins",
                            "updatedBy": {
                              "actorId": "00000000-0000-4000-8000-000000000932",
                              "actorType": "user"
                            },
                            "updatedAt": "2026-09-01T12:00:00.000Z"
                          },
                          "flightSeatingPreference": {
                            "value": "aisle",
                            "visibility": "org-admins",
                            "updatedBy": {
                              "actorId": "00000000-0000-4000-8000-000000000932",
                              "actorType": "user"
                            },
                            "updatedAt": "2026-09-01T12:00:00.000Z"
                          },
                          "dietaryRestrictions": {
                            "value": "Vegetarian",
                            "visibility": "org-admins",
                            "updatedBy": {
                              "actorId": "00000000-0000-4000-8000-000000000932",
                              "actorType": "user"
                            },
                            "updatedAt": "2026-09-01T12:00:00.000Z"
                          }
                        },
                        "version": 2,
                        "cursor": 87235
                      },
                      "meta": {
                        "cursor": 87235
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/user-groups": {
      "get": {
        "tags": [
          "User Groups"
        ],
        "operationId": "listUserGroups",
        "x-roadops-order": 80,
        "summary": "List user groups",
        "description": "Lists user groups for a team.",
        "security": [
          {
            "personalAccessToken": [
              "user_group:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "user_group:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return. Defaults to 50 and is capped at 200.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by page.nextCursor from the previous list response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "User group list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserGroupListResponse"
                },
                "examples": {
                  "List user groups": {
                    "value": {
                      "data": [
                        {
                          "id": "00000000-0000-4000-8000-000000000941",
                          "name": "Tour Management",
                          "labelColor": "#2E6F40",
                          "orgId": "00000000-0000-4000-8000-000000000100",
                          "isDeleted": false,
                          "createdBy": "00000000-0000-4000-8000-000000000101",
                          "createdAt": "2026-09-01T12:00:00.000Z",
                          "updatedBy": "00000000-0000-4000-8000-000000000101",
                          "updatedAt": "2026-09-01T12:00:00.000Z",
                          "version": 1,
                          "cursor": 87234
                        }
                      ],
                      "page": {
                        "limit": 50,
                        "nextCursor": null
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "User Groups"
        ],
        "operationId": "createUserGroup",
        "x-roadops-order": 81,
        "summary": "Create a user group",
        "description": "Accepts a command to create a user group.",
        "security": [
          {
            "personalAccessToken": [
              "user_group:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "user_group:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserGroupCreateRequest"
              },
              "examples": {
                "Create user group": {
                  "value": {
                    "id": "00000000-0000-4000-8000-000000000941",
                    "name": "Tour Management",
                    "labelColor": "#2E6F40"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Create user group": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000941",
                      "resourceType": "user_group",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/user-groups/00000000-0000-4000-8000-000000000941"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/user-groups/{userGroupId}": {
      "get": {
        "tags": [
          "User Groups"
        ],
        "operationId": "getUserGroup",
        "x-roadops-order": 82,
        "summary": "Retrieve a user group",
        "description": "Returns one user group by ID.",
        "security": [
          {
            "personalAccessToken": [
              "user_group:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "user_group:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "userGroupId",
            "in": "path",
            "required": true,
            "description": "User group identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "User group",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserGroupResponse"
                },
                "examples": {
                  "Retrieve user group": {
                    "value": {
                      "data": {
                        "id": "00000000-0000-4000-8000-000000000941",
                        "name": "Tour Management",
                        "labelColor": "#2E6F40",
                        "orgId": "00000000-0000-4000-8000-000000000100",
                        "isDeleted": false,
                        "createdBy": "00000000-0000-4000-8000-000000000101",
                        "createdAt": "2026-09-01T12:00:00.000Z",
                        "updatedBy": "00000000-0000-4000-8000-000000000101",
                        "updatedAt": "2026-09-01T12:00:00.000Z",
                        "version": 1,
                        "cursor": 87234
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "User Groups"
        ],
        "operationId": "updateUserGroup",
        "x-roadops-order": 83,
        "summary": "Update a user group",
        "description": "Accepts a command to update user group fields.",
        "security": [
          {
            "personalAccessToken": [
              "user_group:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "user_group:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "userGroupId",
            "in": "path",
            "required": true,
            "description": "User group identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserGroupUpdateRequest"
              },
              "examples": {
                "Update user group": {
                  "value": {
                    "name": "Department Heads"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Update user group": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000941",
                      "resourceType": "user_group",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/user-groups/00000000-0000-4000-8000-000000000941"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "User Groups"
        ],
        "operationId": "deleteUserGroup",
        "x-roadops-order": 84,
        "summary": "Delete a user group",
        "description": "Accepts a command to delete a user group.",
        "security": [
          {
            "personalAccessToken": [
              "user_group:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "user_group:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "userGroupId",
            "in": "path",
            "required": true,
            "description": "User group identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserGroupDeleteRequest"
              },
              "examples": {
                "Delete user group": {
                  "value": {
                    "reason": "Group retired."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Delete user group": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000941",
                      "resourceType": "user_group",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/user-groups/00000000-0000-4000-8000-000000000941"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/user-groups/{userGroupId}/members": {
      "get": {
        "tags": [
          "User Groups"
        ],
        "operationId": "listUserGroupMembers",
        "x-roadops-order": 85,
        "summary": "List user group members",
        "description": "Lists members assigned to a travel party.",
        "security": [
          {
            "personalAccessToken": [
              "user_group:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "user_group:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "userGroupId",
            "in": "path",
            "required": true,
            "description": "User group identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return. Defaults to 50 and is capped at 200.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by page.nextCursor from the previous list response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "User group member list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserGroupMemberListResponse"
                },
                "examples": {
                  "List user group members": {
                    "value": {
                      "data": [
                        {
                          "id": "00000000-0000-4000-8000-000000000942",
                          "orgId": "00000000-0000-4000-8000-000000000100",
                          "groupId": "00000000-0000-4000-8000-000000000941",
                          "userId": "00000000-0000-4000-8000-000000000103",
                          "memberName": "Taylor Jordan",
                          "givenName": "Taylor",
                          "familyName": "Jordan",
                          "memberEmail": "taylor@example.com",
                          "memberPicture": "https://assets.roadops.app/public/profiles/taylor.jpg",
                          "createdBy": "00000000-0000-4000-8000-000000000101",
                          "createdAt": "2026-09-01T12:00:00.000Z",
                          "updatedBy": "00000000-0000-4000-8000-000000000101",
                          "updatedAt": "2026-09-01T12:00:00.000Z",
                          "version": 1,
                          "cursor": 87235
                        }
                      ],
                      "page": {
                        "limit": 50,
                        "nextCursor": null
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "User Groups"
        ],
        "operationId": "addUserGroupMember",
        "x-roadops-order": 86,
        "summary": "Add a user group member",
        "description": "Accepts a command to add an existing team member to a travel party.",
        "security": [
          {
            "personalAccessToken": [
              "user_group:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "user_group:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "userGroupId",
            "in": "path",
            "required": true,
            "description": "User group identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserGroupMemberAddRequest"
              },
              "examples": {
                "Add user group member": {
                  "value": {
                    "userId": "00000000-0000-4000-8000-000000000103"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Add user group member": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000942",
                      "resourceType": "user_group_member",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/user-groups/00000000-0000-4000-8000-000000000941/members"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/user-groups/{userGroupId}/members/{userId}": {
      "delete": {
        "tags": [
          "User Groups"
        ],
        "operationId": "removeUserGroupMember",
        "x-roadops-order": 87,
        "summary": "Remove a user group member",
        "description": "Accepts a command to remove a member from a travel party.",
        "security": [
          {
            "personalAccessToken": [
              "user_group:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "user_group:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "userGroupId",
            "in": "path",
            "required": true,
            "description": "User group identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "description": "RoadOps user identifier for the member to remove.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Remove user group member": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000942",
                      "resourceType": "user_group_member",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/user-groups/00000000-0000-4000-8000-000000000941/members"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/pass-types": {
      "get": {
        "tags": [
          "Pass Types"
        ],
        "operationId": "listPassTypes",
        "x-roadops-order": 88,
        "summary": "List pass types",
        "description": "Lists pass types for a team.",
        "security": [
          {
            "personalAccessToken": [
              "pass_type:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "pass_type:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return. Defaults to 50 and is capped at 200.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by page.nextCursor from the previous list response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Pass type list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PassTypeListResponse"
                },
                "examples": {
                  "List pass types": {
                    "value": {
                      "data": [
                        {
                          "id": "00000000-0000-4000-8000-000000000951",
                          "name": "All Access",
                          "abbreviation": "AA",
                          "orgId": "00000000-0000-4000-8000-000000000100",
                          "kind": "pass",
                          "isDeleted": false,
                          "isArchived": false,
                          "createdBy": "00000000-0000-4000-8000-000000000101",
                          "createdAt": "2026-09-01T12:00:00.000Z",
                          "updatedBy": "00000000-0000-4000-8000-000000000101",
                          "updatedAt": "2026-09-01T12:00:00.000Z",
                          "version": 1,
                          "cursor": 87234
                        }
                      ],
                      "page": {
                        "limit": 50,
                        "nextCursor": null
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Pass Types"
        ],
        "operationId": "createPassType",
        "x-roadops-order": 89,
        "summary": "Create a pass type",
        "description": "Accepts a command to create a pass type.",
        "security": [
          {
            "personalAccessToken": [
              "pass_type:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "pass_type:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PassTypeCreateRequest"
              },
              "examples": {
                "Create pass type": {
                  "value": {
                    "id": "00000000-0000-4000-8000-000000000951",
                    "name": "All Access",
                    "abbreviation": "AA"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Create pass type": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000951",
                      "resourceType": "pass_type",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/pass-types/00000000-0000-4000-8000-000000000951"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/pass-types/{passTypeId}": {
      "get": {
        "tags": [
          "Pass Types"
        ],
        "operationId": "getPassType",
        "x-roadops-order": 90,
        "summary": "Retrieve a pass type",
        "description": "Returns one pass type by ID.",
        "security": [
          {
            "personalAccessToken": [
              "pass_type:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "pass_type:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "passTypeId",
            "in": "path",
            "required": true,
            "description": "Pass type identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Pass type",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PassTypeResponse"
                },
                "examples": {
                  "Retrieve pass type": {
                    "value": {
                      "data": {
                        "id": "00000000-0000-4000-8000-000000000951",
                        "name": "All Access",
                        "abbreviation": "AA",
                        "orgId": "00000000-0000-4000-8000-000000000100",
                        "kind": "pass",
                        "isDeleted": false,
                        "isArchived": false,
                        "createdBy": "00000000-0000-4000-8000-000000000101",
                        "createdAt": "2026-09-01T12:00:00.000Z",
                        "updatedBy": "00000000-0000-4000-8000-000000000101",
                        "updatedAt": "2026-09-01T12:00:00.000Z",
                        "version": 1,
                        "cursor": 87234
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Pass Types"
        ],
        "operationId": "updatePassType",
        "x-roadops-order": 91,
        "summary": "Update a pass type",
        "description": "Accepts a command to update pass type fields.",
        "security": [
          {
            "personalAccessToken": [
              "pass_type:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "pass_type:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "passTypeId",
            "in": "path",
            "required": true,
            "description": "Pass type identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PassTypeUpdateRequest"
              },
              "examples": {
                "Update pass type": {
                  "value": {
                    "abbreviation": "ALL"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Update pass type": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000951",
                      "resourceType": "pass_type",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/pass-types/00000000-0000-4000-8000-000000000951"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Pass Types"
        ],
        "operationId": "deletePassType",
        "x-roadops-order": 92,
        "summary": "Delete a pass type",
        "description": "Accepts a command to delete a pass type.",
        "security": [
          {
            "personalAccessToken": [
              "pass_type:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "pass_type:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "passTypeId",
            "in": "path",
            "required": true,
            "description": "Pass type identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PassTypeDeleteRequest"
              },
              "examples": {
                "Delete pass type": {
                  "value": {}
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Delete pass type": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000951",
                      "resourceType": "pass_type",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/pass-types/00000000-0000-4000-8000-000000000951"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/ticket-types": {
      "get": {
        "tags": [
          "Ticket Types"
        ],
        "operationId": "listTicketTypes",
        "x-roadops-order": 93,
        "summary": "List ticket types",
        "description": "Lists ticket types for a team.",
        "security": [
          {
            "personalAccessToken": [
              "ticket_type:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "ticket_type:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return. Defaults to 50 and is capped at 200.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by page.nextCursor from the previous list response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Ticket type list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketTypeListResponse"
                },
                "examples": {
                  "List ticket types": {
                    "value": {
                      "data": [
                        {
                          "id": "00000000-0000-4000-8000-000000000961",
                          "name": "Reserved",
                          "abbreviation": "RSV",
                          "isDefault": true,
                          "orgId": "00000000-0000-4000-8000-000000000100",
                          "kind": "ticket",
                          "isDeleted": false,
                          "isArchived": false,
                          "createdBy": "00000000-0000-4000-8000-000000000101",
                          "createdAt": "2026-09-01T12:00:00.000Z",
                          "updatedBy": "00000000-0000-4000-8000-000000000101",
                          "updatedAt": "2026-09-01T12:00:00.000Z",
                          "version": 1,
                          "cursor": 87234
                        }
                      ],
                      "page": {
                        "limit": 50,
                        "nextCursor": null
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Ticket Types"
        ],
        "operationId": "createTicketType",
        "x-roadops-order": 94,
        "summary": "Create a ticket type",
        "description": "Accepts a command to create a ticket type.",
        "security": [
          {
            "personalAccessToken": [
              "ticket_type:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "ticket_type:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TicketTypeCreateRequest"
              },
              "examples": {
                "Create ticket type": {
                  "value": {
                    "id": "00000000-0000-4000-8000-000000000961",
                    "name": "Reserved",
                    "abbreviation": "RSV",
                    "isDefault": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Create ticket type": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000961",
                      "resourceType": "ticket_type",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/ticket-types/00000000-0000-4000-8000-000000000961"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/ticket-types/{ticketTypeId}": {
      "get": {
        "tags": [
          "Ticket Types"
        ],
        "operationId": "getTicketType",
        "x-roadops-order": 95,
        "summary": "Retrieve a ticket type",
        "description": "Returns one ticket type by ID.",
        "security": [
          {
            "personalAccessToken": [
              "ticket_type:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "ticket_type:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "ticketTypeId",
            "in": "path",
            "required": true,
            "description": "Ticket type identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Ticket type",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TicketTypeResponse"
                },
                "examples": {
                  "Retrieve ticket type": {
                    "value": {
                      "data": {
                        "id": "00000000-0000-4000-8000-000000000961",
                        "name": "Reserved",
                        "abbreviation": "RSV",
                        "isDefault": true,
                        "orgId": "00000000-0000-4000-8000-000000000100",
                        "kind": "ticket",
                        "isDeleted": false,
                        "isArchived": false,
                        "createdBy": "00000000-0000-4000-8000-000000000101",
                        "createdAt": "2026-09-01T12:00:00.000Z",
                        "updatedBy": "00000000-0000-4000-8000-000000000101",
                        "updatedAt": "2026-09-01T12:00:00.000Z",
                        "version": 1,
                        "cursor": 87234
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Ticket Types"
        ],
        "operationId": "updateTicketType",
        "x-roadops-order": 96,
        "summary": "Update a ticket type",
        "description": "Accepts a command to update ticket type fields.",
        "security": [
          {
            "personalAccessToken": [
              "ticket_type:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "ticket_type:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "ticketTypeId",
            "in": "path",
            "required": true,
            "description": "Ticket type identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TicketTypeUpdateRequest"
              },
              "examples": {
                "Update ticket type": {
                  "value": {
                    "abbreviation": "RES"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Update ticket type": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000961",
                      "resourceType": "ticket_type",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/ticket-types/00000000-0000-4000-8000-000000000961"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Ticket Types"
        ],
        "operationId": "deleteTicketType",
        "x-roadops-order": 97,
        "summary": "Archive a ticket type",
        "description": "Accepts a command to archive a ticket type.",
        "security": [
          {
            "personalAccessToken": [
              "ticket_type:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "ticket_type:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "ticketTypeId",
            "in": "path",
            "required": true,
            "description": "Ticket type identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TicketTypeDeleteRequest"
              },
              "examples": {
                "Archive ticket type": {
                  "value": {}
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Archive ticket type": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000961",
                      "resourceType": "ticket_type",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/ticket-types/00000000-0000-4000-8000-000000000961"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/days/{dayId}/notes": {
      "get": {
        "tags": [
          "Day Notes"
        ],
        "operationId": "listDayNotes",
        "x-roadops-order": 98,
        "summary": "List day notes",
        "description": "Lists notes for a day that the caller can access. Private notes are returned only to their creator, including when another caller is a team Admin or has Day Notes manage-all access.",
        "security": [
          {
            "personalAccessToken": [
              "day_note:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "day_note:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return. Defaults to 50 and is capped at 200.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by page.nextCursor from the previous list response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Day note list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DayNoteListResponse"
                },
                "examples": {
                  "List day notes": {
                    "value": {
                      "data": [
                        {
                          "id": "00000000-0000-4000-8000-000000000971",
                          "title": "Security",
                          "body": "**Security note**\n\nUse the stage-left entrance after 6 PM.\nBring your badge.",
                          "visibility": {
                            "userIds": [
                              "00000000-0000-4000-8000-000000000101"
                            ]
                          },
                          "orgId": "00000000-0000-4000-8000-000000000100",
                          "dayId": "00000000-0000-4000-8000-000000000201",
                          "isDeleted": false,
                          "createdBy": "00000000-0000-4000-8000-000000000101",
                          "createdAt": "2026-09-01T12:00:00.000Z",
                          "updatedBy": "00000000-0000-4000-8000-000000000101",
                          "updatedAt": "2026-09-01T12:00:00.000Z",
                          "version": 1,
                          "cursor": 87234
                        }
                      ],
                      "page": {
                        "limit": 50,
                        "nextCursor": null
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Day Notes"
        ],
        "operationId": "createDayNote",
        "x-roadops-order": 99,
        "summary": "Create a day note",
        "description": "Accepts a command to create a day note.",
        "security": [
          {
            "personalAccessToken": [
              "day_note:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "day_note:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DayNoteCreateRequest"
              },
              "examples": {
                "Create day note": {
                  "value": {
                    "id": "00000000-0000-4000-8000-000000000971",
                    "title": "Security",
                    "body": "**Security note**\n\nUse the stage-left entrance after 6 PM.\nBring your badge.",
                    "visibility": {
                      "userIds": [
                        "00000000-0000-4000-8000-000000000101"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Create day note": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000971",
                      "resourceType": "day_note",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/notes/00000000-0000-4000-8000-000000000971"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/days/{dayId}/notes/{noteId}": {
      "get": {
        "tags": [
          "Day Notes"
        ],
        "operationId": "getDayNote",
        "x-roadops-order": 100,
        "summary": "Retrieve a day note",
        "description": "Returns one accessible day note by ID. Another user's private note is masked as not found.",
        "security": [
          {
            "personalAccessToken": [
              "day_note:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "day_note:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "noteId",
            "in": "path",
            "required": true,
            "description": "Day note identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Day note",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DayNoteResponse"
                },
                "examples": {
                  "Retrieve day note": {
                    "value": {
                      "data": {
                        "id": "00000000-0000-4000-8000-000000000971",
                        "title": "Security",
                        "body": "**Security note**\n\nUse the stage-left entrance after 6 PM.\nBring your badge.",
                        "visibility": {
                          "userIds": [
                            "00000000-0000-4000-8000-000000000101"
                          ]
                        },
                        "orgId": "00000000-0000-4000-8000-000000000100",
                        "dayId": "00000000-0000-4000-8000-000000000201",
                        "isDeleted": false,
                        "createdBy": "00000000-0000-4000-8000-000000000101",
                        "createdAt": "2026-09-01T12:00:00.000Z",
                        "updatedBy": "00000000-0000-4000-8000-000000000101",
                        "updatedAt": "2026-09-01T12:00:00.000Z",
                        "version": 1,
                        "cursor": 87234
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Day Notes"
        ],
        "operationId": "updateDayNote",
        "x-roadops-order": 101,
        "summary": "Update a day note",
        "description": "Accepts a command to update accessible day note fields. Private notes can be updated only by their creator.",
        "security": [
          {
            "personalAccessToken": [
              "day_note:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "day_note:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "noteId",
            "in": "path",
            "required": true,
            "description": "Day note identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DayNoteUpdateRequest"
              },
              "examples": {
                "Update day note": {
                  "value": {
                    "updates": {
                      "body": "**Security note**\n\nUse the stage-right entrance after 6 PM.\nBring your badge."
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Update day note": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000971",
                      "resourceType": "day_note",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/notes/00000000-0000-4000-8000-000000000971"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Day Notes"
        ],
        "operationId": "deleteDayNote",
        "x-roadops-order": 102,
        "summary": "Delete a day note",
        "description": "Accepts a command to delete an accessible day note. Private notes can be deleted only by their creator.",
        "security": [
          {
            "personalAccessToken": [
              "day_note:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "day_note:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "noteId",
            "in": "path",
            "required": true,
            "description": "Day note identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DayNoteDeleteRequest"
              },
              "examples": {
                "Delete day note": {
                  "value": {}
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Delete day note": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000971",
                      "resourceType": "day_note",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/notes/00000000-0000-4000-8000-000000000971"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/days/{dayId}/files": {
      "get": {
        "tags": [
          "Day Files"
        ],
        "operationId": "listDayFiles",
        "x-roadops-order": 103,
        "summary": "List day files",
        "description": "Lists files attached to a day.",
        "security": [
          {
            "personalAccessToken": [
              "day_file:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "day_file:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "description": "Maximum number of records to return. Defaults to 50 and is capped at 200.",
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Cursor returned by page.nextCursor from the previous list response.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Day file list",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DayFileListResponse"
                },
                "examples": {
                  "List day files": {
                    "value": {
                      "data": [
                        {
                          "id": "00000000-0000-4000-8000-000000000901",
                          "orgId": "00000000-0000-4000-8000-000000000100",
                          "dayId": "00000000-0000-4000-8000-000000000201",
                          "fileName": "Security map.pdf",
                          "contentType": "application/pdf",
                          "sizeBytes": 245760,
                          "visibility": {
                            "userIds": [
                              "00000000-0000-4000-8000-000000000702"
                            ]
                          },
                          "isDeleted": false,
                          "version": 1,
                          "createdAt": "2026-09-14T14:00:00.000Z",
                          "createdBy": "00000000-0000-4000-8000-000000000100",
                          "cursor": 87234
                        }
                      ],
                      "page": {
                        "limit": 50,
                        "nextCursor": null
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Day Files"
        ],
        "operationId": "prepareDayFileUpload",
        "x-roadops-order": 104,
        "summary": "Prepare a day file upload",
        "description": "Step 1 of the day file upload workflow. Send JSON metadata to reserve a file ID and receive a presigned S3 URL that is valid for 15 minutes. Step 2: send the raw file bytes—not multipart/form-data—to upload.url with PUT, including every header in upload.headers exactly as returned. Do not send the RoadOps Authorization header to S3. After S3 returns a successful 2xx response, complete step 3 by calling the returned completion.path with your RoadOps bearer token and completion.body. If the upload URL expires before S3 accepts the file, call this endpoint again; callers that supplied id can reuse that ID until the upload is completed.",
        "security": [
          {
            "personalAccessToken": [
              "day_file:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "day_file:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DayFileUploadRequest"
              },
              "examples": {
                "Prepare day file upload": {
                  "value": {
                    "id": "00000000-0000-4000-8000-000000000901",
                    "fileName": "Security map.pdf",
                    "contentType": "application/pdf",
                    "sizeBytes": 245760
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Short-lived S3 upload target and completion path",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DayFileUploadResponse"
                },
                "examples": {
                  "Prepare day file upload": {
                    "value": {
                      "data": {
                        "fileId": "00000000-0000-4000-8000-000000000901",
                        "fileName": "Security map.pdf",
                        "contentType": "application/pdf",
                        "sizeBytes": 245760,
                        "upload": {
                          "method": "PUT",
                          "url": "https://roadops-day-files-prod.s3.amazonaws.com/00000000-0000-4000-8000-000000000100/00000000-0000-4000-8000-000000000201/00000000-0000-4000-8000-000000000901/Security%20map.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=...",
                          "expiresAt": "2026-09-14T14:15:00.000Z",
                          "expiresInSeconds": 900,
                          "headers": {
                            "Content-Type": "application/pdf",
                            "Content-Length": "245760",
                            "x-amz-meta-roadops-team-id": "00000000-0000-4000-8000-000000000100",
                            "x-amz-meta-roadops-day-id": "00000000-0000-4000-8000-000000000201",
                            "x-amz-meta-roadops-file-id": "00000000-0000-4000-8000-000000000901",
                            "x-amz-meta-roadops-file-name": "Security map.pdf"
                          }
                        },
                        "completion": {
                          "method": "POST",
                          "path": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/files/00000000-0000-4000-8000-000000000901/complete",
                          "body": {
                            "fileName": "Security map.pdf"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/days/{dayId}/files/{fileId}/complete": {
      "post": {
        "tags": [
          "Day Files"
        ],
        "operationId": "completeDayFileUpload",
        "x-roadops-order": 105,
        "summary": "Complete a day file upload",
        "description": "Step 3 of the day file upload workflow. Call this endpoint only after the PUT to the presigned S3 URL returns a successful 2xx response. Send the sanitized fileName returned by the prepare call unchanged in this request body. RoadOps uses it to locate the private object, then verifies its signed RoadOps metadata and the 10 MB size limit before accepting the DayFile.Create command. The presigned URL's 15-minute expiration only limits when S3 can accept the PUT; an object uploaded before expiration can still be completed afterward. Use an Idempotency-Key when retrying this completion request, then poll the receipt's links.refetch URL until the returned cursor reaches the receipt cursor.",
        "security": [
          {
            "personalAccessToken": [
              "day_file:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "day_file:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "fileId",
            "in": "path",
            "required": true,
            "description": "Reserved day file identifier returned by the prepare call.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DayFileUploadCompleteRequest"
              },
              "examples": {
                "Complete day file upload": {
                  "value": {
                    "fileName": "Security map.pdf",
                    "visibility": {
                      "userIds": [
                        "00000000-0000-4000-8000-000000000702"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted day file creation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Complete day file upload": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000901",
                      "resourceType": "day_file",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/files/00000000-0000-4000-8000-000000000901"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/days/{dayId}/files/{fileId}": {
      "get": {
        "tags": [
          "Day Files"
        ],
        "operationId": "getDayFile",
        "x-roadops-order": 106,
        "summary": "Retrieve a day file",
        "description": "Returns one day file by ID.",
        "security": [
          {
            "personalAccessToken": [
              "day_file:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "day_file:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "fileId",
            "in": "path",
            "required": true,
            "description": "Day file identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Day file",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DayFileResponse"
                },
                "examples": {
                  "Retrieve day file": {
                    "value": {
                      "data": {
                        "id": "00000000-0000-4000-8000-000000000901",
                        "orgId": "00000000-0000-4000-8000-000000000100",
                        "dayId": "00000000-0000-4000-8000-000000000201",
                        "fileName": "Security map.pdf",
                        "contentType": "application/pdf",
                        "sizeBytes": 245760,
                        "visibility": {
                          "userIds": [
                            "00000000-0000-4000-8000-000000000702"
                          ]
                        },
                        "isDeleted": false,
                        "version": 1,
                        "createdAt": "2026-09-14T14:00:00.000Z",
                        "createdBy": "00000000-0000-4000-8000-000000000100",
                        "cursor": 87234
                      },
                      "meta": {
                        "cursor": 87234
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Day Files"
        ],
        "operationId": "updateDayFile",
        "x-roadops-order": 107,
        "summary": "Update a day file",
        "description": "Accepts a command to update day file metadata. File replacement is not supported; delete and upload a new file instead.",
        "security": [
          {
            "personalAccessToken": [
              "day_file:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "day_file:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "fileId",
            "in": "path",
            "required": true,
            "description": "Day file identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DayFileUpdateRequest"
              },
              "examples": {
                "Update day file": {
                  "value": {
                    "updates": {
                      "visibility": {
                        "userIds": [
                          "00000000-0000-4000-8000-000000000702"
                        ]
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Update day file": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000901",
                      "resourceType": "day_file",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/files/00000000-0000-4000-8000-000000000901"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Day Files"
        ],
        "operationId": "deleteDayFile",
        "x-roadops-order": 108,
        "summary": "Delete a day file",
        "description": "Accepts a command to delete a day file and remove the stored object.",
        "security": [
          {
            "personalAccessToken": [
              "day_file:write"
            ]
          },
          {
            "roadOpsOAuth": [
              "day_file:write"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "fileId",
            "in": "path",
            "required": true,
            "description": "Day file identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DayFileDeleteRequest"
              },
              "examples": {
                "Delete day file": {
                  "value": {}
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted mutation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MutationReceipt"
                },
                "examples": {
                  "Delete day file": {
                    "value": {
                      "commandId": "00000000-0000-4000-8000-000000000010",
                      "resourceId": "00000000-0000-4000-8000-000000000901",
                      "resourceType": "day_file",
                      "status": "applied",
                      "aggregateVersion": 2,
                      "cursor": 87234,
                      "links": {
                        "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201/files/00000000-0000-4000-8000-000000000901"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/teams/{teamId}/days/{dayId}/files/{fileId}/download": {
      "get": {
        "tags": [
          "Day Files"
        ],
        "operationId": "downloadDayFile",
        "x-roadops-order": 109,
        "summary": "Download a day file",
        "description": "Redirects to a short-lived signed URL that downloads the file directly. Follow the redirect or read the Location response header.",
        "security": [
          {
            "personalAccessToken": [
              "day_file:read"
            ]
          },
          {
            "roadOpsOAuth": [
              "day_file:read"
            ]
          }
        ],
        "parameters": [
          {
            "name": "teamId",
            "in": "path",
            "required": true,
            "description": "Team identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "dayId",
            "in": "path",
            "required": true,
            "description": "Day identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "fileId",
            "in": "path",
            "required": true,
            "description": "Day file identifier.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "302": {
            "description": "Redirect to the signed day file download URL.",
            "headers": {
              "Location": {
                "description": "Short-lived signed URL for downloading the file.",
                "schema": {
                  "type": "string",
                  "format": "uri"
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v1/batches": {
      "post": {
        "tags": [
          "Batches"
        ],
        "operationId": "createBatch",
        "x-roadops-order": 110,
        "summary": "Dispatch a batch of REST-style operations",
        "description": "Accepts multiple mutation operations and dispatches each through the command ledger.",
        "security": [
          {
            "personalAccessToken": [
              "write:all"
            ]
          },
          {
            "roadOpsOAuth": [
              "write:all"
            ]
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "description": "Optional caller-generated UUID used to make mutation retries safe. Reuse the same UUID only when retrying the same request.",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BatchRequest"
              },
              "examples": {
                "Batch create day": {
                  "value": {
                    "operations": [
                      {
                        "method": "POST",
                        "path": "/v1/teams/00000000-0000-4000-8000-000000000100/days",
                        "idempotencyKey": "00000000-0000-4000-8000-000000009001",
                        "body": {
                          "id": "00000000-0000-4000-8000-000000000201",
                          "name": "Nashville",
                          "date": "2026-09-14",
                          "timezone": "America/Chicago",
                          "location": "Nashville, TN",
                          "color": "#2E6F40",
                          "visibility": {
                            "groupIds": [
                              "00000000-0000-4000-8000-000000000701"
                            ],
                            "userIds": [
                              "00000000-0000-4000-8000-000000000702"
                            ]
                          },
                          "latitude": 36.1627,
                          "longitude": -86.7816
                        }
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Batch accepted",
            "content": {
              "application/json": {
                "examples": {
                  "Batch create day": {
                    "value": {
                      "status": "accepted",
                      "results": [
                        {
                          "commandId": "00000000-0000-4000-8000-000000000010",
                          "resourceId": "00000000-0000-4000-8000-000000000201",
                          "resourceType": "day",
                          "status": "applied",
                          "aggregateVersion": 2,
                          "cursor": 87234,
                          "links": {
                            "refetch": "/v1/teams/00000000-0000-4000-8000-000000000100/days/00000000-0000-4000-8000-000000000201"
                          }
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Request failed",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "personalAccessToken": {
        "type": "http",
        "scheme": "bearer",
        "description": "RoadOps personal access token."
      },
      "roadOpsOAuth": {
        "type": "oauth2",
        "description": "RoadOps user-delegated OAuth 2.0 Authorization Code flow with mandatory PKCE.",
        "flows": {
          "authorizationCode": {
            "authorizationUrl": "https://auth.roadops.app/authorize",
            "tokenUrl": "https://auth.roadops.app/oauth/token",
            "scopes": {
              "read:all": "Read everything accessible to your account.",
              "write:all": "Create, update, and delete everything your account is allowed to manage.",
              "team:read": "View the teams your account can access.",
              "team:write": "Create and manage teams when those actions are available.",
              "member:read": "View team members, their profiles and roles, and pending invitations.",
              "member:write": "Invite people and update or remove team members.",
              "user_group:read": "View travel parties and the people assigned to them.",
              "user_group:write": "Create, update, and delete travel parties and manage who belongs to them.",
              "day:read": "View days and their details that your account can access.",
              "day:write": "Create, update, and delete days.",
              "day_note:read": "View notes on days your account can access.",
              "day_note:write": "Create, update, and delete day notes.",
              "day_file:read": "View and download files attached to days your account can access.",
              "day_file:write": "Upload, update, and delete files attached to days.",
              "schedule_item:read": "View schedule items on days your account can access.",
              "schedule_item:write": "Create, update, and delete schedule items.",
              "event:read": "View events and their details.",
              "event:write": "Create, update, and delete events.",
              "venue:read": "View venues and their details.",
              "venue:write": "Create, update, and delete venues.",
              "guest_request:read": "View guest requests your account can access.",
              "guest_request:write": "Create, update, and delete guest requests your account is allowed to manage.",
              "pass_type:read": "View the pass types available for guest requests.",
              "pass_type:write": "Create, update, and delete pass types.",
              "ticket_type:read": "View the ticket types available for guest requests.",
              "ticket_type:write": "Create, update, and delete ticket types.",
              "set_list:read": "View set lists and the order of their songs and other items.",
              "set_list:write": "Create, update, and delete set lists.",
              "set_list_item:read": "View reusable songs and other items used in set lists.",
              "set_list_item:write": "Create, update, delete, retire, and restore reusable set list items.",
              "lodging:read": "View lodging and room details.",
              "lodging:write": "Create, update, and delete lodging.",
              "rental_car:read": "View rental car details on days your account can access.",
              "rental_car:write": "Create, update, and delete rental cars.",
              "webhook:read": "View webhook endpoints, team bindings, and delivery history owned by your account.",
              "webhook:write": "Create, update, test, rotate, retry, and delete webhook endpoints owned by your account."
            }
          }
        }
      },
      "developerPortalSession": {
        "type": "http",
        "scheme": "bearer",
        "description": "RoadOps bearer token. Third-party application tokens are rejected."
      }
    },
    "schemas": {
      "CurrentUserProfileResponse": {
        "type": "object",
        "properties": {
          "data": {
            "description": "Basic profile for the authenticated user.",
            "type": "object",
            "properties": {
              "id": {
                "description": "Canonical RoadOps user identifier.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "firstName": {
                "description": "User's first name.",
                "type": "string"
              },
              "lastName": {
                "description": "User's last name.",
                "type": "string"
              },
              "email": {
                "description": "User's email address.",
                "type": "string",
                "format": "email",
                "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
              },
              "nickname": {
                "description": "User's preferred short display name.",
                "type": "string"
              },
              "picture": {
                "description": "User's profile photo URL.",
                "type": "string",
                "format": "uri"
              }
            },
            "required": [
              "id"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data"
        ],
        "additionalProperties": false
      },
      "PatCreateRequest": {
        "type": "object",
        "properties": {
          "name": {
            "description": "Human-readable token name shown in the developer portal.",
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "scopes": {
            "description": "Scopes granted to the token.",
            "minItems": 1,
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "read:all",
                "write:all",
                "team:read",
                "team:write",
                "member:read",
                "member:write",
                "user_group:read",
                "user_group:write",
                "day:read",
                "day:write",
                "day_note:read",
                "day_note:write",
                "day_file:read",
                "day_file:write",
                "schedule_item:read",
                "schedule_item:write",
                "event:read",
                "event:write",
                "venue:read",
                "venue:write",
                "guest_request:read",
                "guest_request:write",
                "pass_type:read",
                "pass_type:write",
                "ticket_type:read",
                "ticket_type:write",
                "set_list:read",
                "set_list:write",
                "set_list_item:read",
                "set_list_item:write",
                "lodging:read",
                "lodging:write",
                "rental_car:read",
                "rental_car:write",
                "webhook:read",
                "webhook:write"
              ]
            }
          },
          "expiresAt": {
            "description": "Optional ISO 8601 expiration timestamp for the token.",
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          }
        },
        "required": [
          "name",
          "scopes"
        ],
        "additionalProperties": false
      },
      "PatCreateResponse": {
        "type": "object",
        "properties": {
          "token": {
            "description": "Full personal access token secret. RoadOps only displays this value once.",
            "type": "string"
          },
          "personalAccessToken": {
            "description": "Token metadata that can be listed later.",
            "type": "object",
            "properties": {
              "id": {
                "description": "Stable personal access token identifier.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "name": {
                "description": "Human-readable token name.",
                "type": "string"
              },
              "prefix": {
                "description": "Token prefix shown for identification. The token secret is never returned after creation.",
                "type": "string"
              },
              "scopes": {
                "description": "Scopes granted to the token.",
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "read:all",
                    "write:all",
                    "team:read",
                    "team:write",
                    "member:read",
                    "member:write",
                    "user_group:read",
                    "user_group:write",
                    "day:read",
                    "day:write",
                    "day_note:read",
                    "day_note:write",
                    "day_file:read",
                    "day_file:write",
                    "schedule_item:read",
                    "schedule_item:write",
                    "event:read",
                    "event:write",
                    "venue:read",
                    "venue:write",
                    "guest_request:read",
                    "guest_request:write",
                    "pass_type:read",
                    "pass_type:write",
                    "ticket_type:read",
                    "ticket_type:write",
                    "set_list:read",
                    "set_list:write",
                    "set_list_item:read",
                    "set_list_item:write",
                    "lodging:read",
                    "lodging:write",
                    "rental_car:read",
                    "rental_car:write",
                    "webhook:read",
                    "webhook:write"
                  ]
                }
              },
              "status": {
                "description": "Current token lifecycle state.",
                "type": "string",
                "enum": [
                  "active",
                  "revoked"
                ]
              },
              "createdAt": {
                "description": "ISO 8601 timestamp when the token was created.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "expiresAt": {
                "description": "Optional ISO 8601 timestamp when the token expires.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "lastUsedAt": {
                "description": "Most recent ISO 8601 timestamp when the token authenticated a request.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "revokedAt": {
                "description": "ISO 8601 timestamp when the token was revoked.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              }
            },
            "required": [
              "id",
              "name",
              "prefix",
              "scopes",
              "status",
              "createdAt"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "token",
          "personalAccessToken"
        ],
        "additionalProperties": false
      },
      "OAuthAppCreateRequest": {
        "type": "object",
        "properties": {
          "name": {
            "description": "Human-readable application name shown to developers and during consent.",
            "type": "string",
            "minLength": 1,
            "maxLength": 120,
            "pattern": "^[^<>]+$"
          },
          "description": {
            "description": "Optional short description of the application's purpose.",
            "type": "string",
            "maxLength": 140
          },
          "iconUrl": {
            "description": "Optional HTTPS URL for the application's icon.",
            "type": "string",
            "format": "uri"
          },
          "callbackUrls": {
            "description": "Exact redirect URLs RoadOps may use after authorization.",
            "minItems": 1,
            "maxItems": 10,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "allowedOrigins": {
            "description": "Browser origins allowed to call RoadOps authentication endpoints.",
            "default": [],
            "maxItems": 10,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "webOrigins": {
            "description": "Browser origins allowed for RoadOps web-message and silent authentication flows.",
            "default": [],
            "maxItems": 10,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "scopes": {
            "description": "RoadOps Developer API scopes the application may request.",
            "minItems": 1,
            "maxItems": 36,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "read:all",
                "write:all",
                "team:read",
                "team:write",
                "member:read",
                "member:write",
                "user_group:read",
                "user_group:write",
                "day:read",
                "day:write",
                "day_note:read",
                "day_note:write",
                "day_file:read",
                "day_file:write",
                "schedule_item:read",
                "schedule_item:write",
                "event:read",
                "event:write",
                "venue:read",
                "venue:write",
                "guest_request:read",
                "guest_request:write",
                "pass_type:read",
                "pass_type:write",
                "ticket_type:read",
                "ticket_type:write",
                "set_list:read",
                "set_list:write",
                "set_list_item:read",
                "set_list_item:write",
                "lodging:read",
                "lodging:write",
                "rental_car:read",
                "rental_car:write",
                "webhook:read",
                "webhook:write"
              ]
            }
          },
          "appType": {
            "description": "RoadOps OAuth application type. This cannot be changed later.",
            "type": "string",
            "enum": [
              "regular_web",
              "spa",
              "native"
            ]
          },
          "offlineAccess": {
            "default": false,
            "description": "Whether the application may request offline access and receive refresh tokens.",
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "callbackUrls",
          "allowedOrigins",
          "webOrigins",
          "scopes",
          "appType",
          "offlineAccess"
        ],
        "additionalProperties": false
      },
      "OAuthAppUpdateRequest": {
        "type": "object",
        "properties": {
          "name": {
            "description": "Human-readable application name shown to developers and during consent.",
            "type": "string",
            "minLength": 1,
            "maxLength": 120,
            "pattern": "^[^<>]+$"
          },
          "description": {
            "description": "Optional short description of the application's purpose.",
            "type": "string",
            "maxLength": 140
          },
          "iconUrl": {
            "description": "Optional HTTPS URL for the application's icon.",
            "type": "string",
            "format": "uri"
          },
          "callbackUrls": {
            "description": "Exact redirect URLs RoadOps may use after authorization.",
            "minItems": 1,
            "maxItems": 10,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "allowedOrigins": {
            "description": "Browser origins allowed to call RoadOps authentication endpoints.",
            "default": [],
            "maxItems": 10,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "webOrigins": {
            "description": "Browser origins allowed for RoadOps web-message and silent authentication flows.",
            "default": [],
            "maxItems": 10,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "scopes": {
            "description": "RoadOps Developer API scopes the application may request.",
            "minItems": 1,
            "maxItems": 36,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "read:all",
                "write:all",
                "team:read",
                "team:write",
                "member:read",
                "member:write",
                "user_group:read",
                "user_group:write",
                "day:read",
                "day:write",
                "day_note:read",
                "day_note:write",
                "day_file:read",
                "day_file:write",
                "schedule_item:read",
                "schedule_item:write",
                "event:read",
                "event:write",
                "venue:read",
                "venue:write",
                "guest_request:read",
                "guest_request:write",
                "pass_type:read",
                "pass_type:write",
                "ticket_type:read",
                "ticket_type:write",
                "set_list:read",
                "set_list:write",
                "set_list_item:read",
                "set_list_item:write",
                "lodging:read",
                "lodging:write",
                "rental_car:read",
                "rental_car:write",
                "webhook:read",
                "webhook:write"
              ]
            }
          },
          "offlineAccess": {
            "description": "Whether the application may request offline access and receive refresh tokens.",
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "callbackUrls",
          "allowedOrigins",
          "webOrigins",
          "scopes",
          "offlineAccess"
        ],
        "additionalProperties": false
      },
      "PublicOAuthApp": {
        "type": "object",
        "properties": {
          "name": {
            "description": "Human-readable application name shown to developers and during consent.",
            "type": "string",
            "minLength": 1,
            "maxLength": 120,
            "pattern": "^[^<>]+$"
          },
          "description": {
            "description": "Optional short description of the application's purpose.",
            "type": "string",
            "maxLength": 140
          },
          "iconUrl": {
            "description": "Optional HTTPS URL for the application's icon.",
            "type": "string",
            "format": "uri"
          },
          "callbackUrls": {
            "description": "Exact redirect URLs RoadOps may use after authorization.",
            "minItems": 1,
            "maxItems": 10,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "allowedOrigins": {
            "description": "Browser origins allowed to call RoadOps authentication endpoints.",
            "default": [],
            "maxItems": 10,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "webOrigins": {
            "description": "Browser origins allowed for RoadOps web-message and silent authentication flows.",
            "default": [],
            "maxItems": 10,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "scopes": {
            "description": "RoadOps Developer API scopes the application may request.",
            "minItems": 1,
            "maxItems": 36,
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "read:all",
                "write:all",
                "team:read",
                "team:write",
                "member:read",
                "member:write",
                "user_group:read",
                "user_group:write",
                "day:read",
                "day:write",
                "day_note:read",
                "day_note:write",
                "day_file:read",
                "day_file:write",
                "schedule_item:read",
                "schedule_item:write",
                "event:read",
                "event:write",
                "venue:read",
                "venue:write",
                "guest_request:read",
                "guest_request:write",
                "pass_type:read",
                "pass_type:write",
                "ticket_type:read",
                "ticket_type:write",
                "set_list:read",
                "set_list:write",
                "set_list_item:read",
                "set_list_item:write",
                "lodging:read",
                "lodging:write",
                "rental_car:read",
                "rental_car:write",
                "webhook:read",
                "webhook:write"
              ]
            }
          },
          "clientId": {
            "description": "RoadOps client identifier used in OAuth requests.",
            "type": "string"
          },
          "appType": {
            "description": "Immutable RoadOps OAuth application type.",
            "type": "string",
            "enum": [
              "regular_web",
              "spa",
              "native"
            ]
          },
          "offlineAccess": {
            "description": "Whether the application may request offline access and receive refresh tokens.",
            "type": "boolean"
          },
          "status": {
            "description": "Current RoadOps application lifecycle status.",
            "type": "string",
            "enum": [
              "provisioning",
              "active",
              "deleting",
              "error"
            ]
          },
          "createdAt": {
            "description": "ISO 8601 timestamp when the application was created.",
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "updatedAt": {
            "description": "ISO 8601 timestamp when the application was last updated.",
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          }
        },
        "required": [
          "name",
          "callbackUrls",
          "allowedOrigins",
          "webOrigins",
          "scopes",
          "clientId",
          "appType",
          "offlineAccess",
          "status",
          "createdAt",
          "updatedAt"
        ],
        "additionalProperties": false
      },
      "OAuthAppCreateResponse": {
        "type": "object",
        "properties": {
          "application": {
            "description": "Created OAuth application metadata.",
            "type": "object",
            "properties": {
              "name": {
                "description": "Human-readable application name shown to developers and during consent.",
                "type": "string",
                "minLength": 1,
                "maxLength": 120,
                "pattern": "^[^<>]+$"
              },
              "description": {
                "description": "Optional short description of the application's purpose.",
                "type": "string",
                "maxLength": 140
              },
              "iconUrl": {
                "description": "Optional HTTPS URL for the application's icon.",
                "type": "string",
                "format": "uri"
              },
              "callbackUrls": {
                "description": "Exact redirect URLs RoadOps may use after authorization.",
                "minItems": 1,
                "maxItems": 10,
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "allowedOrigins": {
                "description": "Browser origins allowed to call RoadOps authentication endpoints.",
                "default": [],
                "maxItems": 10,
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "webOrigins": {
                "description": "Browser origins allowed for RoadOps web-message and silent authentication flows.",
                "default": [],
                "maxItems": 10,
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1
                }
              },
              "scopes": {
                "description": "RoadOps Developer API scopes the application may request.",
                "minItems": 1,
                "maxItems": 36,
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "read:all",
                    "write:all",
                    "team:read",
                    "team:write",
                    "member:read",
                    "member:write",
                    "user_group:read",
                    "user_group:write",
                    "day:read",
                    "day:write",
                    "day_note:read",
                    "day_note:write",
                    "day_file:read",
                    "day_file:write",
                    "schedule_item:read",
                    "schedule_item:write",
                    "event:read",
                    "event:write",
                    "venue:read",
                    "venue:write",
                    "guest_request:read",
                    "guest_request:write",
                    "pass_type:read",
                    "pass_type:write",
                    "ticket_type:read",
                    "ticket_type:write",
                    "set_list:read",
                    "set_list:write",
                    "set_list_item:read",
                    "set_list_item:write",
                    "lodging:read",
                    "lodging:write",
                    "rental_car:read",
                    "rental_car:write",
                    "webhook:read",
                    "webhook:write"
                  ]
                }
              },
              "clientId": {
                "description": "RoadOps client identifier used in OAuth requests.",
                "type": "string"
              },
              "appType": {
                "description": "Immutable RoadOps OAuth application type.",
                "type": "string",
                "enum": [
                  "regular_web",
                  "spa",
                  "native"
                ]
              },
              "offlineAccess": {
                "description": "Whether the application may request offline access and receive refresh tokens.",
                "type": "boolean"
              },
              "status": {
                "description": "Current RoadOps application lifecycle status.",
                "type": "string",
                "enum": [
                  "provisioning",
                  "active",
                  "deleting",
                  "error"
                ]
              },
              "createdAt": {
                "description": "ISO 8601 timestamp when the application was created.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "updatedAt": {
                "description": "ISO 8601 timestamp when the application was last updated.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              }
            },
            "required": [
              "name",
              "callbackUrls",
              "allowedOrigins",
              "webOrigins",
              "scopes",
              "clientId",
              "appType",
              "offlineAccess",
              "status",
              "createdAt",
              "updatedAt"
            ],
            "additionalProperties": false
          },
          "clientSecret": {
            "description": "Confidential client secret shown only in this response.",
            "type": "string"
          }
        },
        "required": [
          "application"
        ],
        "additionalProperties": false
      },
      "OAuthAppListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "description": "OAuth applications owned by this user.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "description": "Human-readable application name shown to developers and during consent.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 120,
                  "pattern": "^[^<>]+$"
                },
                "description": {
                  "description": "Optional short description of the application's purpose.",
                  "type": "string",
                  "maxLength": 140
                },
                "iconUrl": {
                  "description": "Optional HTTPS URL for the application's icon.",
                  "type": "string",
                  "format": "uri"
                },
                "callbackUrls": {
                  "description": "Exact redirect URLs RoadOps may use after authorization.",
                  "minItems": 1,
                  "maxItems": 10,
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "allowedOrigins": {
                  "description": "Browser origins allowed to call RoadOps authentication endpoints.",
                  "default": [],
                  "maxItems": 10,
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "webOrigins": {
                  "description": "Browser origins allowed for RoadOps web-message and silent authentication flows.",
                  "default": [],
                  "maxItems": 10,
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "scopes": {
                  "description": "RoadOps Developer API scopes the application may request.",
                  "minItems": 1,
                  "maxItems": 36,
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "read:all",
                      "write:all",
                      "team:read",
                      "team:write",
                      "member:read",
                      "member:write",
                      "user_group:read",
                      "user_group:write",
                      "day:read",
                      "day:write",
                      "day_note:read",
                      "day_note:write",
                      "day_file:read",
                      "day_file:write",
                      "schedule_item:read",
                      "schedule_item:write",
                      "event:read",
                      "event:write",
                      "venue:read",
                      "venue:write",
                      "guest_request:read",
                      "guest_request:write",
                      "pass_type:read",
                      "pass_type:write",
                      "ticket_type:read",
                      "ticket_type:write",
                      "set_list:read",
                      "set_list:write",
                      "set_list_item:read",
                      "set_list_item:write",
                      "lodging:read",
                      "lodging:write",
                      "rental_car:read",
                      "rental_car:write",
                      "webhook:read",
                      "webhook:write"
                    ]
                  }
                },
                "clientId": {
                  "description": "RoadOps client identifier used in OAuth requests.",
                  "type": "string"
                },
                "appType": {
                  "description": "Immutable RoadOps OAuth application type.",
                  "type": "string",
                  "enum": [
                    "regular_web",
                    "spa",
                    "native"
                  ]
                },
                "offlineAccess": {
                  "description": "Whether the application may request offline access and receive refresh tokens.",
                  "type": "boolean"
                },
                "status": {
                  "description": "Current RoadOps application lifecycle status.",
                  "type": "string",
                  "enum": [
                    "provisioning",
                    "active",
                    "deleting",
                    "error"
                  ]
                },
                "createdAt": {
                  "description": "ISO 8601 timestamp when the application was created.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "updatedAt": {
                  "description": "ISO 8601 timestamp when the application was last updated.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                }
              },
              "required": [
                "name",
                "callbackUrls",
                "allowedOrigins",
                "webOrigins",
                "scopes",
                "clientId",
                "appType",
                "offlineAccess",
                "status",
                "createdAt",
                "updatedAt"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "data"
        ],
        "additionalProperties": false
      },
      "OAuthAppRotateSecretResponse": {
        "type": "object",
        "properties": {
          "clientId": {
            "description": "RoadOps OAuth client identifier.",
            "type": "string"
          },
          "clientSecret": {
            "description": "Rotated client secret shown only in this response.",
            "type": "string"
          }
        },
        "required": [
          "clientId",
          "clientSecret"
        ],
        "additionalProperties": false
      },
      "WebhookCreateRequest": {
        "type": "object",
        "properties": {
          "name": {
            "description": "Name shown in the developer portal.",
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "url": {
            "description": "Public HTTPS endpoint that receives deliveries.",
            "type": "string",
            "format": "uri"
          },
          "bindings": {
            "description": "Initial active team bindings.",
            "minItems": 1,
            "maxItems": 25,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "teamId": {
                  "description": "Team whose projected changes can trigger this endpoint.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "eventTypes": {
                  "description": "Explicit webhook event types enabled for the team.",
                  "minItems": 1,
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "day.created",
                      "day.updated",
                      "day.deleted",
                      "schedule_item.created",
                      "schedule_item.updated",
                      "schedule_item.deleted",
                      "event.created",
                      "event.updated",
                      "event.deleted",
                      "venue.created",
                      "venue.updated",
                      "venue.deleted",
                      "guest_request.created",
                      "guest_request.updated",
                      "guest_request.deleted",
                      "lodging.created",
                      "lodging.updated",
                      "lodging.deleted",
                      "rental_car.created",
                      "rental_car.updated",
                      "rental_car.deleted",
                      "day_file.created",
                      "day_file.updated",
                      "day_file.deleted",
                      "day_note.created",
                      "day_note.updated",
                      "day_note.deleted",
                      "travel_party.created",
                      "travel_party.updated",
                      "travel_party.deleted",
                      "travel_party.member_added",
                      "travel_party.member_removed",
                      "pass_type.created",
                      "pass_type.updated",
                      "pass_type.deleted",
                      "ticket_type.created",
                      "ticket_type.updated",
                      "ticket_type.deleted",
                      "set_list.created",
                      "set_list.updated",
                      "set_list.deleted",
                      "set_list_item.created",
                      "set_list_item.updated",
                      "set_list_item.retired",
                      "set_list_item.restored",
                      "set_list_item.deleted",
                      "team_member.created",
                      "team_member.updated",
                      "team_member.deleted",
                      "team_invitation.created",
                      "team_invitation.deleted"
                    ]
                  }
                }
              },
              "required": [
                "teamId",
                "eventTypes"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "name",
          "url",
          "bindings"
        ],
        "additionalProperties": false
      },
      "WebhookUpdateRequest": {
        "type": "object",
        "properties": {
          "name": {
            "description": "Name shown in the developer portal.",
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "url": {
            "description": "Public HTTPS endpoint that receives deliveries.",
            "type": "string",
            "format": "uri"
          },
          "bindings": {
            "description": "Replacement team bindings. Every submitted binding is activated.",
            "minItems": 1,
            "maxItems": 25,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "teamId": {
                  "description": "Team whose projected changes can trigger this endpoint.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "eventTypes": {
                  "description": "Explicit webhook event types enabled for the team.",
                  "minItems": 1,
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "day.created",
                      "day.updated",
                      "day.deleted",
                      "schedule_item.created",
                      "schedule_item.updated",
                      "schedule_item.deleted",
                      "event.created",
                      "event.updated",
                      "event.deleted",
                      "venue.created",
                      "venue.updated",
                      "venue.deleted",
                      "guest_request.created",
                      "guest_request.updated",
                      "guest_request.deleted",
                      "lodging.created",
                      "lodging.updated",
                      "lodging.deleted",
                      "rental_car.created",
                      "rental_car.updated",
                      "rental_car.deleted",
                      "day_file.created",
                      "day_file.updated",
                      "day_file.deleted",
                      "day_note.created",
                      "day_note.updated",
                      "day_note.deleted",
                      "travel_party.created",
                      "travel_party.updated",
                      "travel_party.deleted",
                      "travel_party.member_added",
                      "travel_party.member_removed",
                      "pass_type.created",
                      "pass_type.updated",
                      "pass_type.deleted",
                      "ticket_type.created",
                      "ticket_type.updated",
                      "ticket_type.deleted",
                      "set_list.created",
                      "set_list.updated",
                      "set_list.deleted",
                      "set_list_item.created",
                      "set_list_item.updated",
                      "set_list_item.retired",
                      "set_list_item.restored",
                      "set_list_item.deleted",
                      "team_member.created",
                      "team_member.updated",
                      "team_member.deleted",
                      "team_invitation.created",
                      "team_invitation.deleted"
                    ]
                  }
                }
              },
              "required": [
                "teamId",
                "eventTypes"
              ],
              "additionalProperties": false
            }
          },
          "status": {
            "description": "Endpoint delivery status.",
            "type": "string",
            "enum": [
              "active",
              "suspended"
            ]
          }
        },
        "additionalProperties": false
      },
      "WebhookResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "description": "Webhook endpoint identifier.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "name": {
                "description": "Developer-defined endpoint name.",
                "type": "string"
              },
              "url": {
                "description": "HTTPS delivery URL.",
                "type": "string",
                "format": "uri"
              },
              "status": {
                "description": "Current endpoint delivery status.",
                "type": "string",
                "enum": [
                  "active",
                  "suspended"
                ]
              },
              "bindings": {
                "description": "Team and event subscriptions.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "teamId": {
                      "description": "Team whose projected changes can trigger this endpoint.",
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    "eventTypes": {
                      "description": "Explicit webhook event types enabled for the team.",
                      "minItems": 1,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "day.created",
                          "day.updated",
                          "day.deleted",
                          "schedule_item.created",
                          "schedule_item.updated",
                          "schedule_item.deleted",
                          "event.created",
                          "event.updated",
                          "event.deleted",
                          "venue.created",
                          "venue.updated",
                          "venue.deleted",
                          "guest_request.created",
                          "guest_request.updated",
                          "guest_request.deleted",
                          "lodging.created",
                          "lodging.updated",
                          "lodging.deleted",
                          "rental_car.created",
                          "rental_car.updated",
                          "rental_car.deleted",
                          "day_file.created",
                          "day_file.updated",
                          "day_file.deleted",
                          "day_note.created",
                          "day_note.updated",
                          "day_note.deleted",
                          "travel_party.created",
                          "travel_party.updated",
                          "travel_party.deleted",
                          "travel_party.member_added",
                          "travel_party.member_removed",
                          "pass_type.created",
                          "pass_type.updated",
                          "pass_type.deleted",
                          "ticket_type.created",
                          "ticket_type.updated",
                          "ticket_type.deleted",
                          "set_list.created",
                          "set_list.updated",
                          "set_list.deleted",
                          "set_list_item.created",
                          "set_list_item.updated",
                          "set_list_item.retired",
                          "set_list_item.restored",
                          "set_list_item.deleted",
                          "team_member.created",
                          "team_member.updated",
                          "team_member.deleted",
                          "team_invitation.created",
                          "team_invitation.deleted"
                        ]
                      }
                    },
                    "status": {
                      "description": "Current delivery status for this team binding.",
                      "type": "string",
                      "enum": [
                        "active",
                        "suspended"
                      ]
                    },
                    "suspendedReason": {
                      "description": "Why the team binding is suspended.",
                      "type": "string",
                      "maxLength": 200
                    }
                  },
                  "required": [
                    "teamId",
                    "eventTypes",
                    "status"
                  ],
                  "additionalProperties": false
                }
              },
              "consecutiveExhaustedDeliveries": {
                "description": "Consecutive deliveries that exhausted all retries.",
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "suspendedReason": {
                "description": "Why the endpoint is suspended.",
                "type": "string"
              },
              "createdAt": {
                "description": "Endpoint creation time.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "updatedAt": {
                "description": "Endpoint last update time.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              }
            },
            "required": [
              "id",
              "name",
              "url",
              "status",
              "bindings",
              "consecutiveExhaustedDeliveries",
              "createdAt",
              "updatedAt"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data"
        ],
        "additionalProperties": false
      },
      "WebhookListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "description": "Webhook endpoint identifier.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "name": {
                  "description": "Developer-defined endpoint name.",
                  "type": "string"
                },
                "url": {
                  "description": "HTTPS delivery URL.",
                  "type": "string",
                  "format": "uri"
                },
                "status": {
                  "description": "Current endpoint delivery status.",
                  "type": "string",
                  "enum": [
                    "active",
                    "suspended"
                  ]
                },
                "bindings": {
                  "description": "Team and event subscriptions.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "teamId": {
                        "description": "Team whose projected changes can trigger this endpoint.",
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      },
                      "eventTypes": {
                        "description": "Explicit webhook event types enabled for the team.",
                        "minItems": 1,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "day.created",
                            "day.updated",
                            "day.deleted",
                            "schedule_item.created",
                            "schedule_item.updated",
                            "schedule_item.deleted",
                            "event.created",
                            "event.updated",
                            "event.deleted",
                            "venue.created",
                            "venue.updated",
                            "venue.deleted",
                            "guest_request.created",
                            "guest_request.updated",
                            "guest_request.deleted",
                            "lodging.created",
                            "lodging.updated",
                            "lodging.deleted",
                            "rental_car.created",
                            "rental_car.updated",
                            "rental_car.deleted",
                            "day_file.created",
                            "day_file.updated",
                            "day_file.deleted",
                            "day_note.created",
                            "day_note.updated",
                            "day_note.deleted",
                            "travel_party.created",
                            "travel_party.updated",
                            "travel_party.deleted",
                            "travel_party.member_added",
                            "travel_party.member_removed",
                            "pass_type.created",
                            "pass_type.updated",
                            "pass_type.deleted",
                            "ticket_type.created",
                            "ticket_type.updated",
                            "ticket_type.deleted",
                            "set_list.created",
                            "set_list.updated",
                            "set_list.deleted",
                            "set_list_item.created",
                            "set_list_item.updated",
                            "set_list_item.retired",
                            "set_list_item.restored",
                            "set_list_item.deleted",
                            "team_member.created",
                            "team_member.updated",
                            "team_member.deleted",
                            "team_invitation.created",
                            "team_invitation.deleted"
                          ]
                        }
                      },
                      "status": {
                        "description": "Current delivery status for this team binding.",
                        "type": "string",
                        "enum": [
                          "active",
                          "suspended"
                        ]
                      },
                      "suspendedReason": {
                        "description": "Why the team binding is suspended.",
                        "type": "string",
                        "maxLength": 200
                      }
                    },
                    "required": [
                      "teamId",
                      "eventTypes",
                      "status"
                    ],
                    "additionalProperties": false
                  }
                },
                "consecutiveExhaustedDeliveries": {
                  "description": "Consecutive deliveries that exhausted all retries.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "suspendedReason": {
                  "description": "Why the endpoint is suspended.",
                  "type": "string"
                },
                "createdAt": {
                  "description": "Endpoint creation time.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "updatedAt": {
                  "description": "Endpoint last update time.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                }
              },
              "required": [
                "id",
                "name",
                "url",
                "status",
                "bindings",
                "consecutiveExhaustedDeliveries",
                "createdAt",
                "updatedAt"
              ],
              "additionalProperties": false
            }
          },
          "page": {
            "type": "object",
            "properties": {
              "limit": {
                "description": "Maximum records requested.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "nextCursor": {
                "description": "Opaque cursor for the next page.",
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "limit",
              "nextCursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "page"
        ],
        "additionalProperties": false
      },
      "WebhookSecretResponse": {
        "type": "object",
        "properties": {
          "webhook": {
            "type": "object",
            "properties": {
              "id": {
                "description": "Webhook endpoint identifier.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "name": {
                "description": "Developer-defined endpoint name.",
                "type": "string"
              },
              "url": {
                "description": "HTTPS delivery URL.",
                "type": "string",
                "format": "uri"
              },
              "status": {
                "description": "Current endpoint delivery status.",
                "type": "string",
                "enum": [
                  "active",
                  "suspended"
                ]
              },
              "bindings": {
                "description": "Team and event subscriptions.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "teamId": {
                      "description": "Team whose projected changes can trigger this endpoint.",
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    "eventTypes": {
                      "description": "Explicit webhook event types enabled for the team.",
                      "minItems": 1,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "day.created",
                          "day.updated",
                          "day.deleted",
                          "schedule_item.created",
                          "schedule_item.updated",
                          "schedule_item.deleted",
                          "event.created",
                          "event.updated",
                          "event.deleted",
                          "venue.created",
                          "venue.updated",
                          "venue.deleted",
                          "guest_request.created",
                          "guest_request.updated",
                          "guest_request.deleted",
                          "lodging.created",
                          "lodging.updated",
                          "lodging.deleted",
                          "rental_car.created",
                          "rental_car.updated",
                          "rental_car.deleted",
                          "day_file.created",
                          "day_file.updated",
                          "day_file.deleted",
                          "day_note.created",
                          "day_note.updated",
                          "day_note.deleted",
                          "travel_party.created",
                          "travel_party.updated",
                          "travel_party.deleted",
                          "travel_party.member_added",
                          "travel_party.member_removed",
                          "pass_type.created",
                          "pass_type.updated",
                          "pass_type.deleted",
                          "ticket_type.created",
                          "ticket_type.updated",
                          "ticket_type.deleted",
                          "set_list.created",
                          "set_list.updated",
                          "set_list.deleted",
                          "set_list_item.created",
                          "set_list_item.updated",
                          "set_list_item.retired",
                          "set_list_item.restored",
                          "set_list_item.deleted",
                          "team_member.created",
                          "team_member.updated",
                          "team_member.deleted",
                          "team_invitation.created",
                          "team_invitation.deleted"
                        ]
                      }
                    },
                    "status": {
                      "description": "Current delivery status for this team binding.",
                      "type": "string",
                      "enum": [
                        "active",
                        "suspended"
                      ]
                    },
                    "suspendedReason": {
                      "description": "Why the team binding is suspended.",
                      "type": "string",
                      "maxLength": 200
                    }
                  },
                  "required": [
                    "teamId",
                    "eventTypes",
                    "status"
                  ],
                  "additionalProperties": false
                }
              },
              "consecutiveExhaustedDeliveries": {
                "description": "Consecutive deliveries that exhausted all retries.",
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "suspendedReason": {
                "description": "Why the endpoint is suspended.",
                "type": "string"
              },
              "createdAt": {
                "description": "Endpoint creation time.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "updatedAt": {
                "description": "Endpoint last update time.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              }
            },
            "required": [
              "id",
              "name",
              "url",
              "status",
              "bindings",
              "consecutiveExhaustedDeliveries",
              "createdAt",
              "updatedAt"
            ],
            "additionalProperties": false
          },
          "secret": {
            "description": "Signing secret shown only once.",
            "type": "string",
            "minLength": 32
          }
        },
        "required": [
          "webhook",
          "secret"
        ],
        "additionalProperties": false
      },
      "WebhookEventTypeListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "description": "Stable public webhook event type.",
                  "type": "string",
                  "enum": [
                    "day.created",
                    "day.updated",
                    "day.deleted",
                    "schedule_item.created",
                    "schedule_item.updated",
                    "schedule_item.deleted",
                    "event.created",
                    "event.updated",
                    "event.deleted",
                    "venue.created",
                    "venue.updated",
                    "venue.deleted",
                    "guest_request.created",
                    "guest_request.updated",
                    "guest_request.deleted",
                    "lodging.created",
                    "lodging.updated",
                    "lodging.deleted",
                    "rental_car.created",
                    "rental_car.updated",
                    "rental_car.deleted",
                    "day_file.created",
                    "day_file.updated",
                    "day_file.deleted",
                    "day_note.created",
                    "day_note.updated",
                    "day_note.deleted",
                    "travel_party.created",
                    "travel_party.updated",
                    "travel_party.deleted",
                    "travel_party.member_added",
                    "travel_party.member_removed",
                    "pass_type.created",
                    "pass_type.updated",
                    "pass_type.deleted",
                    "ticket_type.created",
                    "ticket_type.updated",
                    "ticket_type.deleted",
                    "set_list.created",
                    "set_list.updated",
                    "set_list.deleted",
                    "set_list_item.created",
                    "set_list_item.updated",
                    "set_list_item.retired",
                    "set_list_item.restored",
                    "set_list_item.deleted",
                    "team_member.created",
                    "team_member.updated",
                    "team_member.deleted",
                    "team_invitation.created",
                    "team_invitation.deleted",
                    "webhook.test"
                  ]
                },
                "resourceType": {
                  "description": "Developer API resource carried by the event.",
                  "type": "string"
                },
                "action": {
                  "description": "Lifecycle action represented by the event.",
                  "type": "string",
                  "enum": [
                    "created",
                    "updated",
                    "deleted",
                    "retired",
                    "restored",
                    "member_added",
                    "member_removed"
                  ]
                },
                "requiredScopes": {
                  "description": "Developer API read scopes required to subscribe.",
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "read:all",
                      "write:all",
                      "team:read",
                      "team:write",
                      "member:read",
                      "member:write",
                      "user_group:read",
                      "user_group:write",
                      "day:read",
                      "day:write",
                      "day_note:read",
                      "day_note:write",
                      "day_file:read",
                      "day_file:write",
                      "schedule_item:read",
                      "schedule_item:write",
                      "event:read",
                      "event:write",
                      "venue:read",
                      "venue:write",
                      "guest_request:read",
                      "guest_request:write",
                      "pass_type:read",
                      "pass_type:write",
                      "ticket_type:read",
                      "ticket_type:write",
                      "set_list:read",
                      "set_list:write",
                      "set_list_item:read",
                      "set_list_item:write",
                      "lodging:read",
                      "lodging:write",
                      "rental_car:read",
                      "rental_car:write",
                      "webhook:read",
                      "webhook:write"
                    ]
                  }
                },
                "description": {
                  "description": "Human-readable description of the event.",
                  "type": "string"
                }
              },
              "required": [
                "type",
                "resourceType",
                "action",
                "requiredScopes",
                "description"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "data"
        ],
        "additionalProperties": false
      },
      "WebhookDeliveryResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "description": "Stable delivery identifier.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "webhookId": {
                "description": "Owning webhook endpoint identifier.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "teamId": {
                "description": "Team associated with the delivery.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "eventId": {
                "description": "Triggering event identifier.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "eventType": {
                "description": "Public webhook event type.",
                "type": "string"
              },
              "resourceId": {
                "description": "Resource represented by the delivery.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "aggregateVersion": {
                "description": "Aggregate version that triggered this delivery.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "cursor": {
                "description": "Triggering event global cursor.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "status": {
                "description": "Current delivery status.",
                "type": "string",
                "enum": [
                  "pending",
                  "retrying",
                  "succeeded",
                  "exhausted",
                  "suppressed"
                ]
              },
              "retryable": {
                "description": "Whether this delivery may be explicitly requeued. Pending deliveries become retryable after the active queue retry window has safely elapsed.",
                "type": "boolean"
              },
              "attemptCount": {
                "description": "Completed delivery attempts.",
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "nextAttemptAt": {
                "description": "Scheduled time for the next retry.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "lastAttemptAt": {
                "description": "Time of the most recent attempt.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "lastResponseStatus": {
                "description": "Most recent HTTP response status.",
                "type": "integer",
                "minimum": 100,
                "maximum": 599
              },
              "lastErrorCode": {
                "description": "Compact last delivery error code.",
                "type": "string"
              },
              "suppressedReason": {
                "description": "Reason delivery was suppressed before sending.",
                "type": "string"
              },
              "createdAt": {
                "description": "Delivery creation time.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "updatedAt": {
                "description": "Delivery metadata update time.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              }
            },
            "required": [
              "id",
              "webhookId",
              "teamId",
              "eventId",
              "eventType",
              "resourceId",
              "aggregateVersion",
              "cursor",
              "status",
              "retryable",
              "attemptCount",
              "createdAt",
              "updatedAt"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data"
        ],
        "additionalProperties": false
      },
      "WebhookDeliveryListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "description": "Stable delivery identifier.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "webhookId": {
                  "description": "Owning webhook endpoint identifier.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "teamId": {
                  "description": "Team associated with the delivery.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "eventId": {
                  "description": "Triggering event identifier.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "eventType": {
                  "description": "Public webhook event type.",
                  "type": "string"
                },
                "resourceId": {
                  "description": "Resource represented by the delivery.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "aggregateVersion": {
                  "description": "Aggregate version that triggered this delivery.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                },
                "cursor": {
                  "description": "Triggering event global cursor.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                },
                "status": {
                  "description": "Current delivery status.",
                  "type": "string",
                  "enum": [
                    "pending",
                    "retrying",
                    "succeeded",
                    "exhausted",
                    "suppressed"
                  ]
                },
                "retryable": {
                  "description": "Whether this delivery may be explicitly requeued. Pending deliveries become retryable after the active queue retry window has safely elapsed.",
                  "type": "boolean"
                },
                "attemptCount": {
                  "description": "Completed delivery attempts.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "nextAttemptAt": {
                  "description": "Scheduled time for the next retry.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "lastAttemptAt": {
                  "description": "Time of the most recent attempt.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "lastResponseStatus": {
                  "description": "Most recent HTTP response status.",
                  "type": "integer",
                  "minimum": 100,
                  "maximum": 599
                },
                "lastErrorCode": {
                  "description": "Compact last delivery error code.",
                  "type": "string"
                },
                "suppressedReason": {
                  "description": "Reason delivery was suppressed before sending.",
                  "type": "string"
                },
                "createdAt": {
                  "description": "Delivery creation time.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "updatedAt": {
                  "description": "Delivery metadata update time.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                }
              },
              "required": [
                "id",
                "webhookId",
                "teamId",
                "eventId",
                "eventType",
                "resourceId",
                "aggregateVersion",
                "cursor",
                "status",
                "retryable",
                "attemptCount",
                "createdAt",
                "updatedAt"
              ],
              "additionalProperties": false
            }
          },
          "page": {
            "type": "object",
            "properties": {
              "limit": {
                "description": "Maximum records requested.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "nextCursor": {
                "description": "Opaque cursor for the next page.",
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "limit",
              "nextCursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "page"
        ],
        "additionalProperties": false
      },
      "TeamListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "description": "Team identifier.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "name": {
                  "description": "Team display name.",
                  "type": "string"
                },
                "role": {
                  "description": "Role held by the token owner on the team.",
                  "type": "string"
                },
                "status": {
                  "description": "Membership status for the token owner on this team.",
                  "default": "active",
                  "type": "string",
                  "enum": [
                    "active",
                    "invited",
                    "departed",
                    "removed"
                  ]
                },
                "organizationStatus": {
                  "description": "Team organization lifecycle status.",
                  "type": "string",
                  "enum": [
                    "active",
                    "archived"
                  ]
                },
                "version": {
                  "description": "Current team aggregate version.",
                  "type": "number"
                },
                "cursor": {
                  "description": "Latest event-ledger cursor projected into this team record.",
                  "type": "number"
                }
              },
              "required": [
                "id",
                "name"
              ],
              "additionalProperties": false
            }
          },
          "page": {
            "type": "object",
            "properties": {
              "limit": {
                "description": "Maximum number of records returned in this page.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "nextCursor": {
                "description": "Cursor to pass as the next request's cursor query parameter, or null when there are no more results.",
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "limit",
              "nextCursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "nullable": true,
                "type": "number"
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "page",
          "meta"
        ],
        "additionalProperties": false
      },
      "CreateDayRequest": {
        "type": "object",
        "properties": {
          "name": {
            "description": "Day display name.",
            "type": "string",
            "maxLength": 100
          },
          "date": {
            "description": "Calendar date for the day in YYYY-MM-DD format.",
            "type": "string"
          },
          "timezone": {
            "description": "IANA timezone for the day."
          },
          "location": {
            "description": "Optional city, venue, or location label.",
            "type": "string",
            "maxLength": 300
          },
          "color": {
            "description": "Hex color reference for the day label, formatted as #RRGGBB.",
            "type": "string",
            "pattern": "^#[0-9a-fA-F]{6}$"
          },
          "visibility": {
            "description": "Optional visibility rules for the day.",
            "type": "object",
            "properties": {
              "groupIds": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              },
              "userIds": {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              }
            },
            "additionalProperties": false
          },
          "latitude": {
            "description": "Latitude in decimal degrees.",
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          "longitude": {
            "description": "Longitude in decimal degrees.",
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          "id": {
            "description": "Optional caller-supplied day ID. RoadOps generates one when omitted.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "name",
          "date",
          "timezone"
        ],
        "additionalProperties": false
      },
      "UpdateDayRequest": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "description": "Optional aggregate version guard.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "updates": {
            "type": "object",
            "properties": {
              "name": {
                "description": "Updated day display name.",
                "type": "string",
                "maxLength": 100
              },
              "timezone": {
                "description": "Updated IANA timezone identifier."
              },
              "location": {
                "description": "Updated city, venue, or location label, or null to clear it.",
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 300
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              },
              "color": {
                "description": "Updated hex color reference for the day label, or null to clear it.",
                "anyOf": [
                  {
                    "description": "Hex color reference for the day label, formatted as #RRGGBB.",
                    "type": "string",
                    "pattern": "^#[0-9a-fA-F]{6}$"
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              },
              "visibility": {
                "description": "Updated visibility rules or null to clear them.",
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "groupIds": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        }
                      },
                      "userIds": {
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              },
              "latitude": {
                "description": "Updated latitude in decimal degrees, or null to clear it.",
                "anyOf": [
                  {
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              },
              "longitude": {
                "description": "Updated longitude in decimal degrees, or null to clear it.",
                "anyOf": [
                  {
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "updates"
        ],
        "additionalProperties": false
      },
      "DayResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "description": "Day identifier.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "orgId": {
                "description": "Team identifier.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "name": {
                "description": "Day display name.",
                "type": "string",
                "maxLength": 100
              },
              "date": {
                "description": "Calendar date for the day in YYYY-MM-DD format.",
                "type": "string"
              },
              "timezone": {
                "description": "IANA timezone for the day."
              },
              "location": {
                "description": "Optional city, venue, or location label.",
                "type": "string",
                "maxLength": 300
              },
              "color": {
                "description": "Hex color reference for the day label, formatted as #RRGGBB.",
                "type": "string",
                "pattern": "^#[0-9a-fA-F]{6}$"
              },
              "visibility": {
                "description": "Optional visibility rules for the day.",
                "type": "object",
                "properties": {
                  "groupIds": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  },
                  "userIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  }
                },
                "additionalProperties": false
              },
              "latitude": {
                "description": "Latitude in decimal degrees.",
                "type": "number",
                "minimum": -90,
                "maximum": 90
              },
              "longitude": {
                "description": "Longitude in decimal degrees.",
                "type": "number",
                "minimum": -180,
                "maximum": 180
              },
              "isDeleted": {
                "description": "Soft-delete flag.",
                "default": false,
                "type": "boolean"
              },
              "version": {
                "description": "Current day aggregate version.",
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "cursor": {
                "description": "Latest event-ledger cursor projected into this day record.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "id",
              "orgId",
              "name",
              "date",
              "timezone",
              "isDeleted",
              "version",
              "cursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "additionalProperties": false
      },
      "DayListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "description": "Day identifier.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "orgId": {
                  "description": "Team identifier.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "name": {
                  "description": "Day display name.",
                  "type": "string",
                  "maxLength": 100
                },
                "date": {
                  "description": "Calendar date for the day in YYYY-MM-DD format.",
                  "type": "string"
                },
                "timezone": {
                  "description": "IANA timezone for the day."
                },
                "location": {
                  "description": "Optional city, venue, or location label.",
                  "type": "string",
                  "maxLength": 300
                },
                "color": {
                  "description": "Hex color reference for the day label, formatted as #RRGGBB.",
                  "type": "string",
                  "pattern": "^#[0-9a-fA-F]{6}$"
                },
                "visibility": {
                  "description": "Optional visibility rules for the day.",
                  "type": "object",
                  "properties": {
                    "groupIds": {
                      "maxItems": 50,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      }
                    },
                    "userIds": {
                      "maxItems": 200,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "latitude": {
                  "description": "Latitude in decimal degrees.",
                  "type": "number",
                  "minimum": -90,
                  "maximum": 90
                },
                "longitude": {
                  "description": "Longitude in decimal degrees.",
                  "type": "number",
                  "minimum": -180,
                  "maximum": 180
                },
                "isDeleted": {
                  "description": "Soft-delete flag.",
                  "default": false,
                  "type": "boolean"
                },
                "version": {
                  "description": "Current day aggregate version.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "cursor": {
                  "description": "Latest event-ledger cursor projected into this day record.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "id",
                "orgId",
                "name",
                "date",
                "timezone",
                "isDeleted",
                "version",
                "cursor"
              ],
              "additionalProperties": false
            }
          },
          "page": {
            "type": "object",
            "properties": {
              "limit": {
                "description": "Maximum number of records returned in this page.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "nextCursor": {
                "description": "Cursor to pass as the next request's cursor query parameter, or null when there are no more results.",
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "limit",
              "nextCursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "nullable": true,
                "type": "number"
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "page",
          "meta"
        ],
        "additionalProperties": false
      },
      "ScheduleItemCreateRequest": {
        "oneOf": [
          {
            "type": "object",
            "properties": {
              "dayId": {
                "description": "Day that owns the schedule item.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "name": {
                "description": "Schedule item display name.",
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "type": {
                "description": "General schedule item type.",
                "type": "string",
                "enum": [
                  "general"
                ]
              },
              "status": {
                "default": "confirmed",
                "description": "Confirmation state for the schedule item.",
                "type": "string",
                "enum": [
                  "confirmed",
                  "unconfirmed"
                ]
              },
              "priority": {
                "default": "normal",
                "description": "Priority used to draw attention to important schedule items.",
                "type": "string",
                "enum": [
                  "normal",
                  "high"
                ]
              },
              "startTime": {
                "description": "Schedule item start time as a UTC ISO 8601 timestamp, including the trailing Z UTC designator. The timestamp must fall within the associated day's local 48-hour window.",
                "type": "string"
              },
              "endTime": {
                "description": "Schedule item end time as a UTC ISO 8601 timestamp, including the trailing Z UTC designator. Non-flight items must end within the associated day's local 48-hour window; flights may arrive after that window.",
                "type": "string"
              },
              "startTimezone": {
                "description": "IANA timezone identifier for displaying the start time, such as America/Chicago."
              },
              "endTimezone": {
                "description": "IANA timezone identifier for displaying the end time, such as America/Chicago."
              },
              "details": {
                "type": "object",
                "properties": {
                  "kind": {
                    "description": "Discriminator for a general schedule item.",
                    "type": "string",
                    "enum": [
                      "general"
                    ]
                  },
                  "location": {
                    "description": "Optional location for the general item.",
                    "type": "object",
                    "properties": {
                      "label": {
                        "description": "Human-readable place label.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "address": {
                        "description": "Street address or venue address.",
                        "type": "string",
                        "maxLength": 300
                      },
                      "placeId": {
                        "description": "Google Places ID when available.",
                        "type": "string",
                        "maxLength": 255
                      },
                      "latitude": {
                        "description": "Latitude in decimal degrees.",
                        "type": "number",
                        "minimum": -90,
                        "maximum": 90
                      },
                      "longitude": {
                        "description": "Longitude in decimal degrees.",
                        "type": "number",
                        "minimum": -180,
                        "maximum": 180
                      },
                      "timezone": {
                        "description": "Timezone for this location."
                      }
                    },
                    "additionalProperties": false
                  },
                  "metadata": {
                    "description": "Integration-specific metadata.",
                    "type": "object",
                    "additionalProperties": {}
                  }
                },
                "required": [
                  "kind"
                ],
                "additionalProperties": false
              },
              "notes": {
                "description": "Optional schedule item notes.",
                "type": "string",
                "maxLength": 2000
              },
              "color": {
                "description": "Hex color reference for the schedule item label, formatted as a leading # followed by six hexadecimal characters. Use this to color-code the item consistently in calendars, timelines, and schedule views.",
                "type": "string",
                "pattern": "^#[0-9a-fA-F]{6}$"
              },
              "sourceMetadata": {
                "description": "Integration-specific source metadata.",
                "type": "object",
                "additionalProperties": {}
              },
              "visibility": {
                "description": "Optional visibility rules.",
                "type": "object",
                "properties": {
                  "groupIds": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  },
                  "userIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  }
                },
                "additionalProperties": false
              },
              "id": {
                "description": "Optional caller-supplied schedule item ID. RoadOps generates one when omitted.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              }
            },
            "required": [
              "dayId",
              "name",
              "type",
              "status",
              "priority",
              "startTime",
              "endTime",
              "startTimezone",
              "endTimezone",
              "details"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "dayId": {
                "description": "Day that owns the schedule item.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "name": {
                "description": "Schedule item display name.",
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "type": {
                "description": "Drive schedule item type.",
                "type": "string",
                "enum": [
                  "drive"
                ]
              },
              "status": {
                "default": "confirmed",
                "description": "Confirmation state for the schedule item.",
                "type": "string",
                "enum": [
                  "confirmed",
                  "unconfirmed"
                ]
              },
              "priority": {
                "default": "normal",
                "description": "Priority used to draw attention to important schedule items.",
                "type": "string",
                "enum": [
                  "normal",
                  "high"
                ]
              },
              "startTime": {
                "description": "Schedule item start time as a UTC ISO 8601 timestamp, including the trailing Z UTC designator. The timestamp must fall within the associated day's local 48-hour window.",
                "type": "string"
              },
              "endTime": {
                "description": "Schedule item end time as a UTC ISO 8601 timestamp, including the trailing Z UTC designator. Non-flight items must end within the associated day's local 48-hour window; flights may arrive after that window.",
                "type": "string"
              },
              "startTimezone": {
                "description": "IANA timezone identifier for displaying the start time, such as America/Chicago."
              },
              "endTimezone": {
                "description": "IANA timezone identifier for displaying the end time, such as America/Chicago."
              },
              "details": {
                "type": "object",
                "properties": {
                  "kind": {
                    "description": "Discriminator for a drive schedule item.",
                    "type": "string",
                    "enum": [
                      "drive"
                    ]
                  },
                  "transportMode": {
                    "description": "Ground transportation mode. Omitted values are treated as self_drive for compatibility.",
                    "type": "string",
                    "enum": [
                      "self_drive",
                      "car_service",
                      "runner",
                      "bus",
                      "taxi",
                      "rideshare",
                      "other"
                    ]
                  },
                  "includesFerry": {
                    "description": "Whether this drive includes a ferry segment.",
                    "type": "boolean"
                  },
                  "provider": {
                    "description": "Transportation provider or company.",
                    "type": "string",
                    "maxLength": 200
                  },
                  "confirmationNumber": {
                    "description": "Transportation booking or confirmation number.",
                    "type": "string",
                    "maxLength": 60
                  },
                  "driverName": {
                    "description": "Driver or runner name.",
                    "type": "string",
                    "maxLength": 200
                  },
                  "contact": {
                    "description": "Driver, runner, or provider contact details.",
                    "type": "string",
                    "maxLength": 200
                  },
                  "vehicleDescription": {
                    "description": "Vehicle class, type, or identifying description.",
                    "type": "string",
                    "maxLength": 200
                  },
                  "pickupInstructions": {
                    "description": "Pickup instructions for the traveler.",
                    "type": "string",
                    "maxLength": 500
                  },
                  "otherDescription": {
                    "description": "Description of an Other transportation mode.",
                    "type": "string",
                    "maxLength": 200
                  },
                  "origin": {
                    "description": "Drive origin.",
                    "type": "object",
                    "properties": {
                      "label": {
                        "description": "Human-readable place label.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "address": {
                        "description": "Street address or venue address.",
                        "type": "string",
                        "maxLength": 300
                      },
                      "placeId": {
                        "description": "Google Places ID when available.",
                        "type": "string",
                        "maxLength": 255
                      },
                      "latitude": {
                        "description": "Latitude in decimal degrees.",
                        "type": "number",
                        "minimum": -90,
                        "maximum": 90
                      },
                      "longitude": {
                        "description": "Longitude in decimal degrees.",
                        "type": "number",
                        "minimum": -180,
                        "maximum": 180
                      },
                      "timezone": {
                        "description": "Timezone for this location."
                      }
                    },
                    "additionalProperties": false
                  },
                  "stops": {
                    "description": "Ordered intermediate stops between the drive origin and destination. Each stop ID must be unique. Array order is route order; send an empty array to clear all stops.",
                    "maxItems": 10,
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "description": "Stable identifier for this intermediate drive stop.",
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "location": {
                          "description": "Intermediate location visited by the drive.",
                          "type": "object",
                          "properties": {
                            "label": {
                              "description": "Human-readable place label.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "address": {
                              "description": "Street address or venue address.",
                              "type": "string",
                              "maxLength": 300
                            },
                            "placeId": {
                              "description": "Google Places ID when available.",
                              "type": "string",
                              "maxLength": 255
                            },
                            "latitude": {
                              "description": "Latitude in decimal degrees.",
                              "type": "number",
                              "minimum": -90,
                              "maximum": 90
                            },
                            "longitude": {
                              "description": "Longitude in decimal degrees.",
                              "type": "number",
                              "minimum": -180,
                              "maximum": 180
                            },
                            "timezone": {
                              "description": "Timezone for this location."
                            }
                          },
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "id",
                        "location"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "destination": {
                    "description": "Drive destination.",
                    "type": "object",
                    "properties": {
                      "label": {
                        "description": "Human-readable place label.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "address": {
                        "description": "Street address or venue address.",
                        "type": "string",
                        "maxLength": 300
                      },
                      "placeId": {
                        "description": "Google Places ID when available.",
                        "type": "string",
                        "maxLength": 255
                      },
                      "latitude": {
                        "description": "Latitude in decimal degrees.",
                        "type": "number",
                        "minimum": -90,
                        "maximum": 90
                      },
                      "longitude": {
                        "description": "Longitude in decimal degrees.",
                        "type": "number",
                        "minimum": -180,
                        "maximum": 180
                      },
                      "timezone": {
                        "description": "Timezone for this location."
                      }
                    },
                    "additionalProperties": false
                  },
                  "distanceKm": {
                    "description": "Drive distance in kilometers.",
                    "type": "number",
                    "minimum": 0
                  },
                  "distanceMiles": {
                    "description": "Drive distance in miles.",
                    "type": "number",
                    "minimum": 0
                  },
                  "durationMinutes": {
                    "description": "Expected drive duration in minutes.",
                    "type": "number",
                    "minimum": 0
                  },
                  "vehicle": {
                    "description": "Vehicle assigned to the drive. Coming soon in the RoadOps app.",
                    "type": "string",
                    "maxLength": 100
                  },
                  "notes": {
                    "description": "Drive-specific notes.",
                    "type": "string",
                    "maxLength": 500
                  }
                },
                "required": [
                  "kind"
                ],
                "additionalProperties": false
              },
              "notes": {
                "description": "Optional schedule item notes.",
                "type": "string",
                "maxLength": 2000
              },
              "color": {
                "description": "Hex color reference for the schedule item label, formatted as a leading # followed by six hexadecimal characters. Use this to color-code the item consistently in calendars, timelines, and schedule views.",
                "type": "string",
                "pattern": "^#[0-9a-fA-F]{6}$"
              },
              "sourceMetadata": {
                "description": "Integration-specific source metadata.",
                "type": "object",
                "additionalProperties": {}
              },
              "visibility": {
                "description": "Optional visibility rules.",
                "type": "object",
                "properties": {
                  "groupIds": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  },
                  "userIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  }
                },
                "additionalProperties": false
              },
              "id": {
                "description": "Optional caller-supplied schedule item ID. RoadOps generates one when omitted.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              }
            },
            "required": [
              "dayId",
              "name",
              "type",
              "status",
              "priority",
              "startTime",
              "endTime",
              "startTimezone",
              "endTimezone",
              "details"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "dayId": {
                "description": "Day that owns the schedule item.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "name": {
                "description": "Schedule item display name.",
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "type": {
                "description": "Flight schedule item type.",
                "type": "string",
                "enum": [
                  "flight"
                ]
              },
              "status": {
                "default": "confirmed",
                "description": "Confirmation state for the schedule item.",
                "type": "string",
                "enum": [
                  "confirmed",
                  "unconfirmed"
                ]
              },
              "priority": {
                "default": "normal",
                "description": "Priority used to draw attention to important schedule items.",
                "type": "string",
                "enum": [
                  "normal",
                  "high"
                ]
              },
              "startTime": {
                "description": "Schedule item start time as a UTC ISO 8601 timestamp, including the trailing Z UTC designator. The timestamp must fall within the associated day's local 48-hour window.",
                "type": "string"
              },
              "endTime": {
                "description": "Schedule item end time as a UTC ISO 8601 timestamp, including the trailing Z UTC designator. Non-flight items must end within the associated day's local 48-hour window; flights may arrive after that window.",
                "type": "string"
              },
              "startTimezone": {
                "description": "IANA timezone identifier for displaying the start time, such as America/Chicago."
              },
              "endTimezone": {
                "description": "IANA timezone identifier for displaying the end time, such as America/Chicago."
              },
              "details": {
                "type": "object",
                "properties": {
                  "kind": {
                    "description": "Discriminator for a flight schedule item.",
                    "type": "string",
                    "enum": [
                      "flight"
                    ]
                  },
                  "flightType": {
                    "description": "Whether the flight is commercial or private.",
                    "default": "commercial",
                    "type": "string",
                    "enum": [
                      "commercial",
                      "private"
                    ]
                  },
                  "confirmationNumber": {
                    "description": "Booking confirmation number.",
                    "type": "string",
                    "maxLength": 60
                  },
                  "tailNumber": {
                    "description": "Private aircraft tail number.",
                    "type": "string",
                    "maxLength": 20
                  },
                  "aircraftType": {
                    "description": "Private aircraft type.",
                    "type": "string",
                    "maxLength": 100
                  },
                  "passengerCapacity": {
                    "description": "Passenger capacity for the private aircraft.",
                    "type": "integer",
                    "exclusiveMinimum": true,
                    "maximum": 9007199254740991
                  },
                  "passengers": {
                    "description": "RoadOps member IDs traveling on this flight. Coming soon in the RoadOps app.",
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "description": "RoadOps member ID for a passenger.",
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  },
                  "connections": {
                    "description": "Ordered flight legs or connections.",
                    "default": [],
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "airline": {
                          "description": "Airline or operator name.",
                          "type": "string",
                          "maxLength": 100
                        },
                        "flightNumber": {
                          "description": "Commercial flight number or private leg identifier.",
                          "type": "string",
                          "maxLength": 30
                        },
                        "origin": {
                          "description": "Origin airport.",
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "minLength": 2,
                              "maxLength": 4,
                              "pattern": "^[A-Za-z0-9]+$"
                            },
                            "name": {
                              "description": "Airport display name.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "address": {
                              "description": "Airport address.",
                              "type": "string",
                              "maxLength": 300
                            },
                            "placeId": {
                              "description": "Google Places ID when available.",
                              "type": "string",
                              "maxLength": 255
                            },
                            "terminal": {
                              "description": "Terminal label.",
                              "type": "string",
                              "maxLength": 50
                            },
                            "gate": {
                              "description": "Gate label.",
                              "type": "string",
                              "maxLength": 50
                            },
                            "latitude": {
                              "description": "Latitude in decimal degrees.",
                              "type": "number",
                              "minimum": -90,
                              "maximum": 90
                            },
                            "longitude": {
                              "description": "Longitude in decimal degrees.",
                              "type": "number",
                              "minimum": -180,
                              "maximum": 180
                            }
                          },
                          "additionalProperties": false
                        },
                        "destination": {
                          "description": "Destination airport.",
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string",
                              "minLength": 2,
                              "maxLength": 4,
                              "pattern": "^[A-Za-z0-9]+$"
                            },
                            "name": {
                              "description": "Airport display name.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "address": {
                              "description": "Airport address.",
                              "type": "string",
                              "maxLength": 300
                            },
                            "placeId": {
                              "description": "Google Places ID when available.",
                              "type": "string",
                              "maxLength": 255
                            },
                            "terminal": {
                              "description": "Terminal label.",
                              "type": "string",
                              "maxLength": 50
                            },
                            "gate": {
                              "description": "Gate label.",
                              "type": "string",
                              "maxLength": 50
                            },
                            "latitude": {
                              "description": "Latitude in decimal degrees.",
                              "type": "number",
                              "minimum": -90,
                              "maximum": 90
                            },
                            "longitude": {
                              "description": "Longitude in decimal degrees.",
                              "type": "number",
                              "minimum": -180,
                              "maximum": 180
                            }
                          },
                          "additionalProperties": false
                        },
                        "originFbo": {
                          "description": "Origin FBO for private flights.",
                          "type": "object",
                          "properties": {
                            "label": {
                              "description": "Human-readable place label.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "address": {
                              "description": "Street address or venue address.",
                              "type": "string",
                              "maxLength": 300
                            },
                            "placeId": {
                              "description": "Google Places ID when available.",
                              "type": "string",
                              "maxLength": 255
                            },
                            "latitude": {
                              "description": "Latitude in decimal degrees.",
                              "type": "number",
                              "minimum": -90,
                              "maximum": 90
                            },
                            "longitude": {
                              "description": "Longitude in decimal degrees.",
                              "type": "number",
                              "minimum": -180,
                              "maximum": 180
                            },
                            "timezone": {
                              "description": "Timezone for this location."
                            }
                          },
                          "additionalProperties": false
                        },
                        "originFboPhone": {
                          "description": "Origin FBO phone number.",
                          "type": "string",
                          "maxLength": 100
                        },
                        "destinationFbo": {
                          "description": "Destination FBO for private flights.",
                          "type": "object",
                          "properties": {
                            "label": {
                              "description": "Human-readable place label.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "address": {
                              "description": "Street address or venue address.",
                              "type": "string",
                              "maxLength": 300
                            },
                            "placeId": {
                              "description": "Google Places ID when available.",
                              "type": "string",
                              "maxLength": 255
                            },
                            "latitude": {
                              "description": "Latitude in decimal degrees.",
                              "type": "number",
                              "minimum": -90,
                              "maximum": 90
                            },
                            "longitude": {
                              "description": "Longitude in decimal degrees.",
                              "type": "number",
                              "minimum": -180,
                              "maximum": 180
                            },
                            "timezone": {
                              "description": "Timezone for this location."
                            }
                          },
                          "additionalProperties": false
                        },
                        "destinationFboPhone": {
                          "description": "Destination FBO phone number.",
                          "type": "string",
                          "maxLength": 100
                        },
                        "departureTime": {
                          "description": "Scheduled departure time.",
                          "type": "string"
                        },
                        "departureTimezone": {
                          "description": "Timezone for the departure time."
                        },
                        "arrivalTime": {
                          "description": "Scheduled arrival time.",
                          "type": "string"
                        },
                        "arrivalTimezone": {
                          "description": "Timezone for the arrival time."
                        }
                      },
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "kind",
                  "flightType",
                  "connections"
                ],
                "additionalProperties": false
              },
              "notes": {
                "description": "Optional schedule item notes.",
                "type": "string",
                "maxLength": 2000
              },
              "color": {
                "description": "Hex color reference for the schedule item label, formatted as a leading # followed by six hexadecimal characters. Use this to color-code the item consistently in calendars, timelines, and schedule views.",
                "type": "string",
                "pattern": "^#[0-9a-fA-F]{6}$"
              },
              "sourceMetadata": {
                "description": "Integration-specific source metadata.",
                "type": "object",
                "additionalProperties": {}
              },
              "visibility": {
                "description": "Optional visibility rules.",
                "type": "object",
                "properties": {
                  "groupIds": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  },
                  "userIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  }
                },
                "additionalProperties": false
              },
              "id": {
                "description": "Optional caller-supplied schedule item ID. RoadOps generates one when omitted.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              }
            },
            "required": [
              "dayId",
              "name",
              "type",
              "status",
              "priority",
              "startTime",
              "endTime",
              "startTimezone",
              "endTimezone",
              "details"
            ],
            "additionalProperties": false
          }
        ]
      },
      "GeneralScheduleItemCreateRequest": {
        "type": "object",
        "properties": {
          "dayId": {
            "description": "Day that owns the schedule item.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "name": {
            "description": "Schedule item display name.",
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "type": {
            "description": "General schedule item type.",
            "type": "string",
            "enum": [
              "general"
            ]
          },
          "status": {
            "default": "confirmed",
            "description": "Confirmation state for the schedule item.",
            "type": "string",
            "enum": [
              "confirmed",
              "unconfirmed"
            ]
          },
          "priority": {
            "default": "normal",
            "description": "Priority used to draw attention to important schedule items.",
            "type": "string",
            "enum": [
              "normal",
              "high"
            ]
          },
          "startTime": {
            "description": "Schedule item start time as a UTC ISO 8601 timestamp, including the trailing Z UTC designator. The timestamp must fall within the associated day's local 48-hour window.",
            "type": "string"
          },
          "endTime": {
            "description": "Schedule item end time as a UTC ISO 8601 timestamp, including the trailing Z UTC designator. Non-flight items must end within the associated day's local 48-hour window; flights may arrive after that window.",
            "type": "string"
          },
          "startTimezone": {
            "description": "IANA timezone identifier for displaying the start time, such as America/Chicago."
          },
          "endTimezone": {
            "description": "IANA timezone identifier for displaying the end time, such as America/Chicago."
          },
          "details": {
            "type": "object",
            "properties": {
              "kind": {
                "description": "Discriminator for a general schedule item.",
                "type": "string",
                "enum": [
                  "general"
                ]
              },
              "location": {
                "description": "Optional location for the general item.",
                "type": "object",
                "properties": {
                  "label": {
                    "description": "Human-readable place label.",
                    "type": "string",
                    "maxLength": 200
                  },
                  "address": {
                    "description": "Street address or venue address.",
                    "type": "string",
                    "maxLength": 300
                  },
                  "placeId": {
                    "description": "Google Places ID when available.",
                    "type": "string",
                    "maxLength": 255
                  },
                  "latitude": {
                    "description": "Latitude in decimal degrees.",
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90
                  },
                  "longitude": {
                    "description": "Longitude in decimal degrees.",
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180
                  },
                  "timezone": {
                    "description": "Timezone for this location."
                  }
                },
                "additionalProperties": false
              },
              "metadata": {
                "description": "Integration-specific metadata.",
                "type": "object",
                "additionalProperties": {}
              }
            },
            "required": [
              "kind"
            ],
            "additionalProperties": false
          },
          "notes": {
            "description": "Optional schedule item notes.",
            "type": "string",
            "maxLength": 2000
          },
          "color": {
            "description": "Hex color reference for the schedule item label, formatted as a leading # followed by six hexadecimal characters. Use this to color-code the item consistently in calendars, timelines, and schedule views.",
            "type": "string",
            "pattern": "^#[0-9a-fA-F]{6}$"
          },
          "sourceMetadata": {
            "description": "Integration-specific source metadata.",
            "type": "object",
            "additionalProperties": {}
          },
          "visibility": {
            "description": "Optional visibility rules.",
            "type": "object",
            "properties": {
              "groupIds": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              },
              "userIds": {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              }
            },
            "additionalProperties": false
          },
          "id": {
            "description": "Optional caller-supplied schedule item ID. RoadOps generates one when omitted.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "dayId",
          "name",
          "type",
          "status",
          "priority",
          "startTime",
          "endTime",
          "startTimezone",
          "endTimezone",
          "details"
        ],
        "additionalProperties": false
      },
      "DriveScheduleItemCreateRequest": {
        "type": "object",
        "properties": {
          "dayId": {
            "description": "Day that owns the schedule item.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "name": {
            "description": "Schedule item display name.",
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "type": {
            "description": "Drive schedule item type.",
            "type": "string",
            "enum": [
              "drive"
            ]
          },
          "status": {
            "default": "confirmed",
            "description": "Confirmation state for the schedule item.",
            "type": "string",
            "enum": [
              "confirmed",
              "unconfirmed"
            ]
          },
          "priority": {
            "default": "normal",
            "description": "Priority used to draw attention to important schedule items.",
            "type": "string",
            "enum": [
              "normal",
              "high"
            ]
          },
          "startTime": {
            "description": "Schedule item start time as a UTC ISO 8601 timestamp, including the trailing Z UTC designator. The timestamp must fall within the associated day's local 48-hour window.",
            "type": "string"
          },
          "endTime": {
            "description": "Schedule item end time as a UTC ISO 8601 timestamp, including the trailing Z UTC designator. Non-flight items must end within the associated day's local 48-hour window; flights may arrive after that window.",
            "type": "string"
          },
          "startTimezone": {
            "description": "IANA timezone identifier for displaying the start time, such as America/Chicago."
          },
          "endTimezone": {
            "description": "IANA timezone identifier for displaying the end time, such as America/Chicago."
          },
          "details": {
            "type": "object",
            "properties": {
              "kind": {
                "description": "Discriminator for a drive schedule item.",
                "type": "string",
                "enum": [
                  "drive"
                ]
              },
              "transportMode": {
                "description": "Ground transportation mode. Omitted values are treated as self_drive for compatibility.",
                "type": "string",
                "enum": [
                  "self_drive",
                  "car_service",
                  "runner",
                  "bus",
                  "taxi",
                  "rideshare",
                  "other"
                ]
              },
              "includesFerry": {
                "description": "Whether this drive includes a ferry segment.",
                "type": "boolean"
              },
              "provider": {
                "description": "Transportation provider or company.",
                "type": "string",
                "maxLength": 200
              },
              "confirmationNumber": {
                "description": "Transportation booking or confirmation number.",
                "type": "string",
                "maxLength": 60
              },
              "driverName": {
                "description": "Driver or runner name.",
                "type": "string",
                "maxLength": 200
              },
              "contact": {
                "description": "Driver, runner, or provider contact details.",
                "type": "string",
                "maxLength": 200
              },
              "vehicleDescription": {
                "description": "Vehicle class, type, or identifying description.",
                "type": "string",
                "maxLength": 200
              },
              "pickupInstructions": {
                "description": "Pickup instructions for the traveler.",
                "type": "string",
                "maxLength": 500
              },
              "otherDescription": {
                "description": "Description of an Other transportation mode.",
                "type": "string",
                "maxLength": 200
              },
              "origin": {
                "description": "Drive origin.",
                "type": "object",
                "properties": {
                  "label": {
                    "description": "Human-readable place label.",
                    "type": "string",
                    "maxLength": 200
                  },
                  "address": {
                    "description": "Street address or venue address.",
                    "type": "string",
                    "maxLength": 300
                  },
                  "placeId": {
                    "description": "Google Places ID when available.",
                    "type": "string",
                    "maxLength": 255
                  },
                  "latitude": {
                    "description": "Latitude in decimal degrees.",
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90
                  },
                  "longitude": {
                    "description": "Longitude in decimal degrees.",
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180
                  },
                  "timezone": {
                    "description": "Timezone for this location."
                  }
                },
                "additionalProperties": false
              },
              "stops": {
                "description": "Ordered intermediate stops between the drive origin and destination. Each stop ID must be unique. Array order is route order; send an empty array to clear all stops.",
                "maxItems": 10,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "description": "Stable identifier for this intermediate drive stop.",
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    "location": {
                      "description": "Intermediate location visited by the drive.",
                      "type": "object",
                      "properties": {
                        "label": {
                          "description": "Human-readable place label.",
                          "type": "string",
                          "maxLength": 200
                        },
                        "address": {
                          "description": "Street address or venue address.",
                          "type": "string",
                          "maxLength": 300
                        },
                        "placeId": {
                          "description": "Google Places ID when available.",
                          "type": "string",
                          "maxLength": 255
                        },
                        "latitude": {
                          "description": "Latitude in decimal degrees.",
                          "type": "number",
                          "minimum": -90,
                          "maximum": 90
                        },
                        "longitude": {
                          "description": "Longitude in decimal degrees.",
                          "type": "number",
                          "minimum": -180,
                          "maximum": 180
                        },
                        "timezone": {
                          "description": "Timezone for this location."
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "required": [
                    "id",
                    "location"
                  ],
                  "additionalProperties": false
                }
              },
              "destination": {
                "description": "Drive destination.",
                "type": "object",
                "properties": {
                  "label": {
                    "description": "Human-readable place label.",
                    "type": "string",
                    "maxLength": 200
                  },
                  "address": {
                    "description": "Street address or venue address.",
                    "type": "string",
                    "maxLength": 300
                  },
                  "placeId": {
                    "description": "Google Places ID when available.",
                    "type": "string",
                    "maxLength": 255
                  },
                  "latitude": {
                    "description": "Latitude in decimal degrees.",
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90
                  },
                  "longitude": {
                    "description": "Longitude in decimal degrees.",
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180
                  },
                  "timezone": {
                    "description": "Timezone for this location."
                  }
                },
                "additionalProperties": false
              },
              "distanceKm": {
                "description": "Drive distance in kilometers.",
                "type": "number",
                "minimum": 0
              },
              "distanceMiles": {
                "description": "Drive distance in miles.",
                "type": "number",
                "minimum": 0
              },
              "durationMinutes": {
                "description": "Expected drive duration in minutes.",
                "type": "number",
                "minimum": 0
              },
              "vehicle": {
                "description": "Vehicle assigned to the drive. Coming soon in the RoadOps app.",
                "type": "string",
                "maxLength": 100
              },
              "notes": {
                "description": "Drive-specific notes.",
                "type": "string",
                "maxLength": 500
              }
            },
            "required": [
              "kind"
            ],
            "additionalProperties": false
          },
          "notes": {
            "description": "Optional schedule item notes.",
            "type": "string",
            "maxLength": 2000
          },
          "color": {
            "description": "Hex color reference for the schedule item label, formatted as a leading # followed by six hexadecimal characters. Use this to color-code the item consistently in calendars, timelines, and schedule views.",
            "type": "string",
            "pattern": "^#[0-9a-fA-F]{6}$"
          },
          "sourceMetadata": {
            "description": "Integration-specific source metadata.",
            "type": "object",
            "additionalProperties": {}
          },
          "visibility": {
            "description": "Optional visibility rules.",
            "type": "object",
            "properties": {
              "groupIds": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              },
              "userIds": {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              }
            },
            "additionalProperties": false
          },
          "id": {
            "description": "Optional caller-supplied schedule item ID. RoadOps generates one when omitted.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "dayId",
          "name",
          "type",
          "status",
          "priority",
          "startTime",
          "endTime",
          "startTimezone",
          "endTimezone",
          "details"
        ],
        "additionalProperties": false
      },
      "FlightScheduleItemCreateRequest": {
        "type": "object",
        "properties": {
          "dayId": {
            "description": "Day that owns the schedule item.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "name": {
            "description": "Schedule item display name.",
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "type": {
            "description": "Flight schedule item type.",
            "type": "string",
            "enum": [
              "flight"
            ]
          },
          "status": {
            "default": "confirmed",
            "description": "Confirmation state for the schedule item.",
            "type": "string",
            "enum": [
              "confirmed",
              "unconfirmed"
            ]
          },
          "priority": {
            "default": "normal",
            "description": "Priority used to draw attention to important schedule items.",
            "type": "string",
            "enum": [
              "normal",
              "high"
            ]
          },
          "startTime": {
            "description": "Schedule item start time as a UTC ISO 8601 timestamp, including the trailing Z UTC designator. The timestamp must fall within the associated day's local 48-hour window.",
            "type": "string"
          },
          "endTime": {
            "description": "Schedule item end time as a UTC ISO 8601 timestamp, including the trailing Z UTC designator. Non-flight items must end within the associated day's local 48-hour window; flights may arrive after that window.",
            "type": "string"
          },
          "startTimezone": {
            "description": "IANA timezone identifier for displaying the start time, such as America/Chicago."
          },
          "endTimezone": {
            "description": "IANA timezone identifier for displaying the end time, such as America/Chicago."
          },
          "details": {
            "type": "object",
            "properties": {
              "kind": {
                "description": "Discriminator for a flight schedule item.",
                "type": "string",
                "enum": [
                  "flight"
                ]
              },
              "flightType": {
                "description": "Whether the flight is commercial or private.",
                "default": "commercial",
                "type": "string",
                "enum": [
                  "commercial",
                  "private"
                ]
              },
              "confirmationNumber": {
                "description": "Booking confirmation number.",
                "type": "string",
                "maxLength": 60
              },
              "tailNumber": {
                "description": "Private aircraft tail number.",
                "type": "string",
                "maxLength": 20
              },
              "aircraftType": {
                "description": "Private aircraft type.",
                "type": "string",
                "maxLength": 100
              },
              "passengerCapacity": {
                "description": "Passenger capacity for the private aircraft.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "passengers": {
                "description": "RoadOps member IDs traveling on this flight. Coming soon in the RoadOps app.",
                "maxItems": 100,
                "type": "array",
                "items": {
                  "description": "RoadOps member ID for a passenger.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              },
              "connections": {
                "description": "Ordered flight legs or connections.",
                "default": [],
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "airline": {
                      "description": "Airline or operator name.",
                      "type": "string",
                      "maxLength": 100
                    },
                    "flightNumber": {
                      "description": "Commercial flight number or private leg identifier.",
                      "type": "string",
                      "maxLength": 30
                    },
                    "origin": {
                      "description": "Origin airport.",
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "minLength": 2,
                          "maxLength": 4,
                          "pattern": "^[A-Za-z0-9]+$"
                        },
                        "name": {
                          "description": "Airport display name.",
                          "type": "string",
                          "maxLength": 200
                        },
                        "address": {
                          "description": "Airport address.",
                          "type": "string",
                          "maxLength": 300
                        },
                        "placeId": {
                          "description": "Google Places ID when available.",
                          "type": "string",
                          "maxLength": 255
                        },
                        "terminal": {
                          "description": "Terminal label.",
                          "type": "string",
                          "maxLength": 50
                        },
                        "gate": {
                          "description": "Gate label.",
                          "type": "string",
                          "maxLength": 50
                        },
                        "latitude": {
                          "description": "Latitude in decimal degrees.",
                          "type": "number",
                          "minimum": -90,
                          "maximum": 90
                        },
                        "longitude": {
                          "description": "Longitude in decimal degrees.",
                          "type": "number",
                          "minimum": -180,
                          "maximum": 180
                        }
                      },
                      "additionalProperties": false
                    },
                    "destination": {
                      "description": "Destination airport.",
                      "type": "object",
                      "properties": {
                        "code": {
                          "type": "string",
                          "minLength": 2,
                          "maxLength": 4,
                          "pattern": "^[A-Za-z0-9]+$"
                        },
                        "name": {
                          "description": "Airport display name.",
                          "type": "string",
                          "maxLength": 200
                        },
                        "address": {
                          "description": "Airport address.",
                          "type": "string",
                          "maxLength": 300
                        },
                        "placeId": {
                          "description": "Google Places ID when available.",
                          "type": "string",
                          "maxLength": 255
                        },
                        "terminal": {
                          "description": "Terminal label.",
                          "type": "string",
                          "maxLength": 50
                        },
                        "gate": {
                          "description": "Gate label.",
                          "type": "string",
                          "maxLength": 50
                        },
                        "latitude": {
                          "description": "Latitude in decimal degrees.",
                          "type": "number",
                          "minimum": -90,
                          "maximum": 90
                        },
                        "longitude": {
                          "description": "Longitude in decimal degrees.",
                          "type": "number",
                          "minimum": -180,
                          "maximum": 180
                        }
                      },
                      "additionalProperties": false
                    },
                    "originFbo": {
                      "description": "Origin FBO for private flights.",
                      "type": "object",
                      "properties": {
                        "label": {
                          "description": "Human-readable place label.",
                          "type": "string",
                          "maxLength": 200
                        },
                        "address": {
                          "description": "Street address or venue address.",
                          "type": "string",
                          "maxLength": 300
                        },
                        "placeId": {
                          "description": "Google Places ID when available.",
                          "type": "string",
                          "maxLength": 255
                        },
                        "latitude": {
                          "description": "Latitude in decimal degrees.",
                          "type": "number",
                          "minimum": -90,
                          "maximum": 90
                        },
                        "longitude": {
                          "description": "Longitude in decimal degrees.",
                          "type": "number",
                          "minimum": -180,
                          "maximum": 180
                        },
                        "timezone": {
                          "description": "Timezone for this location."
                        }
                      },
                      "additionalProperties": false
                    },
                    "originFboPhone": {
                      "description": "Origin FBO phone number.",
                      "type": "string",
                      "maxLength": 100
                    },
                    "destinationFbo": {
                      "description": "Destination FBO for private flights.",
                      "type": "object",
                      "properties": {
                        "label": {
                          "description": "Human-readable place label.",
                          "type": "string",
                          "maxLength": 200
                        },
                        "address": {
                          "description": "Street address or venue address.",
                          "type": "string",
                          "maxLength": 300
                        },
                        "placeId": {
                          "description": "Google Places ID when available.",
                          "type": "string",
                          "maxLength": 255
                        },
                        "latitude": {
                          "description": "Latitude in decimal degrees.",
                          "type": "number",
                          "minimum": -90,
                          "maximum": 90
                        },
                        "longitude": {
                          "description": "Longitude in decimal degrees.",
                          "type": "number",
                          "minimum": -180,
                          "maximum": 180
                        },
                        "timezone": {
                          "description": "Timezone for this location."
                        }
                      },
                      "additionalProperties": false
                    },
                    "destinationFboPhone": {
                      "description": "Destination FBO phone number.",
                      "type": "string",
                      "maxLength": 100
                    },
                    "departureTime": {
                      "description": "Scheduled departure time.",
                      "type": "string"
                    },
                    "departureTimezone": {
                      "description": "Timezone for the departure time."
                    },
                    "arrivalTime": {
                      "description": "Scheduled arrival time.",
                      "type": "string"
                    },
                    "arrivalTimezone": {
                      "description": "Timezone for the arrival time."
                    }
                  },
                  "additionalProperties": false
                }
              }
            },
            "required": [
              "kind",
              "flightType",
              "connections"
            ],
            "additionalProperties": false
          },
          "notes": {
            "description": "Optional schedule item notes.",
            "type": "string",
            "maxLength": 2000
          },
          "color": {
            "description": "Hex color reference for the schedule item label, formatted as a leading # followed by six hexadecimal characters. Use this to color-code the item consistently in calendars, timelines, and schedule views.",
            "type": "string",
            "pattern": "^#[0-9a-fA-F]{6}$"
          },
          "sourceMetadata": {
            "description": "Integration-specific source metadata.",
            "type": "object",
            "additionalProperties": {}
          },
          "visibility": {
            "description": "Optional visibility rules.",
            "type": "object",
            "properties": {
              "groupIds": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              },
              "userIds": {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              }
            },
            "additionalProperties": false
          },
          "id": {
            "description": "Optional caller-supplied schedule item ID. RoadOps generates one when omitted.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "dayId",
          "name",
          "type",
          "status",
          "priority",
          "startTime",
          "endTime",
          "startTimezone",
          "endTimezone",
          "details"
        ],
        "additionalProperties": false
      },
      "ScheduleItemUpdateRequest": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "description": "Optional aggregate version guard.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "updates": {
            "description": "Schedule item fields to update. The type field must continue to match details.kind when both are supplied.",
            "type": "object",
            "properties": {
              "name": {
                "description": "Updated schedule item name.",
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "type": {
                "description": "Updated schedule item variant.",
                "type": "string",
                "enum": [
                  "general",
                  "drive",
                  "flight",
                  "train"
                ]
              },
              "details": {
                "description": "Updated type-specific details.",
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "description": "Discriminator for a general schedule item.",
                        "type": "string",
                        "enum": [
                          "general"
                        ]
                      },
                      "location": {
                        "description": "Optional location for the general item.",
                        "type": "object",
                        "properties": {
                          "label": {
                            "description": "Human-readable place label.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "address": {
                            "description": "Street address or venue address.",
                            "type": "string",
                            "maxLength": 300
                          },
                          "placeId": {
                            "description": "Google Places ID when available.",
                            "type": "string",
                            "maxLength": 255
                          },
                          "latitude": {
                            "description": "Latitude in decimal degrees.",
                            "type": "number",
                            "minimum": -90,
                            "maximum": 90
                          },
                          "longitude": {
                            "description": "Longitude in decimal degrees.",
                            "type": "number",
                            "minimum": -180,
                            "maximum": 180
                          },
                          "timezone": {
                            "description": "Timezone for this location."
                          }
                        },
                        "additionalProperties": false
                      },
                      "metadata": {
                        "description": "Integration-specific metadata.",
                        "type": "object",
                        "additionalProperties": {}
                      }
                    },
                    "required": [
                      "kind"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "description": "Discriminator for a drive schedule item.",
                        "type": "string",
                        "enum": [
                          "drive"
                        ]
                      },
                      "transportMode": {
                        "description": "Ground transportation mode. Omitted values are treated as self_drive for compatibility.",
                        "type": "string",
                        "enum": [
                          "self_drive",
                          "car_service",
                          "runner",
                          "bus",
                          "taxi",
                          "rideshare",
                          "other"
                        ]
                      },
                      "includesFerry": {
                        "description": "Whether this drive includes a ferry segment.",
                        "type": "boolean"
                      },
                      "provider": {
                        "description": "Transportation provider or company.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "confirmationNumber": {
                        "description": "Transportation booking or confirmation number.",
                        "type": "string",
                        "maxLength": 60
                      },
                      "driverName": {
                        "description": "Driver or runner name.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "contact": {
                        "description": "Driver, runner, or provider contact details.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "vehicleDescription": {
                        "description": "Vehicle class, type, or identifying description.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "pickupInstructions": {
                        "description": "Pickup instructions for the traveler.",
                        "type": "string",
                        "maxLength": 500
                      },
                      "otherDescription": {
                        "description": "Description of an Other transportation mode.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "origin": {
                        "description": "Drive origin.",
                        "type": "object",
                        "properties": {
                          "label": {
                            "description": "Human-readable place label.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "address": {
                            "description": "Street address or venue address.",
                            "type": "string",
                            "maxLength": 300
                          },
                          "placeId": {
                            "description": "Google Places ID when available.",
                            "type": "string",
                            "maxLength": 255
                          },
                          "latitude": {
                            "description": "Latitude in decimal degrees.",
                            "type": "number",
                            "minimum": -90,
                            "maximum": 90
                          },
                          "longitude": {
                            "description": "Longitude in decimal degrees.",
                            "type": "number",
                            "minimum": -180,
                            "maximum": 180
                          },
                          "timezone": {
                            "description": "Timezone for this location."
                          }
                        },
                        "additionalProperties": false
                      },
                      "stops": {
                        "description": "Ordered intermediate stops between the drive origin and destination. Each stop ID must be unique. Array order is route order; send an empty array to clear all stops.",
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "description": "Stable identifier for this intermediate drive stop.",
                              "type": "string",
                              "format": "uuid",
                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                            },
                            "location": {
                              "description": "Intermediate location visited by the drive.",
                              "type": "object",
                              "properties": {
                                "label": {
                                  "description": "Human-readable place label.",
                                  "type": "string",
                                  "maxLength": 200
                                },
                                "address": {
                                  "description": "Street address or venue address.",
                                  "type": "string",
                                  "maxLength": 300
                                },
                                "placeId": {
                                  "description": "Google Places ID when available.",
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "latitude": {
                                  "description": "Latitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -90,
                                  "maximum": 90
                                },
                                "longitude": {
                                  "description": "Longitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180
                                },
                                "timezone": {
                                  "description": "Timezone for this location."
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "id",
                            "location"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "destination": {
                        "description": "Drive destination.",
                        "type": "object",
                        "properties": {
                          "label": {
                            "description": "Human-readable place label.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "address": {
                            "description": "Street address or venue address.",
                            "type": "string",
                            "maxLength": 300
                          },
                          "placeId": {
                            "description": "Google Places ID when available.",
                            "type": "string",
                            "maxLength": 255
                          },
                          "latitude": {
                            "description": "Latitude in decimal degrees.",
                            "type": "number",
                            "minimum": -90,
                            "maximum": 90
                          },
                          "longitude": {
                            "description": "Longitude in decimal degrees.",
                            "type": "number",
                            "minimum": -180,
                            "maximum": 180
                          },
                          "timezone": {
                            "description": "Timezone for this location."
                          }
                        },
                        "additionalProperties": false
                      },
                      "distanceKm": {
                        "description": "Drive distance in kilometers.",
                        "type": "number",
                        "minimum": 0
                      },
                      "distanceMiles": {
                        "description": "Drive distance in miles.",
                        "type": "number",
                        "minimum": 0
                      },
                      "durationMinutes": {
                        "description": "Expected drive duration in minutes.",
                        "type": "number",
                        "minimum": 0
                      },
                      "vehicle": {
                        "description": "Vehicle assigned to the drive. Coming soon in the RoadOps app.",
                        "type": "string",
                        "maxLength": 100
                      },
                      "notes": {
                        "description": "Drive-specific notes.",
                        "type": "string",
                        "maxLength": 500
                      }
                    },
                    "required": [
                      "kind"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "description": "Discriminator for a flight schedule item.",
                        "type": "string",
                        "enum": [
                          "flight"
                        ]
                      },
                      "flightType": {
                        "description": "Whether the flight is commercial or private.",
                        "default": "commercial",
                        "type": "string",
                        "enum": [
                          "commercial",
                          "private"
                        ]
                      },
                      "confirmationNumber": {
                        "description": "Booking confirmation number.",
                        "type": "string",
                        "maxLength": 60
                      },
                      "tailNumber": {
                        "description": "Private aircraft tail number.",
                        "type": "string",
                        "maxLength": 20
                      },
                      "aircraftType": {
                        "description": "Private aircraft type.",
                        "type": "string",
                        "maxLength": 100
                      },
                      "passengerCapacity": {
                        "description": "Passenger capacity for the private aircraft.",
                        "type": "integer",
                        "exclusiveMinimum": true,
                        "maximum": 9007199254740991
                      },
                      "passengers": {
                        "description": "RoadOps member IDs traveling on this flight. Coming soon in the RoadOps app.",
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "description": "RoadOps member ID for a passenger.",
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        }
                      },
                      "connections": {
                        "description": "Ordered flight legs or connections.",
                        "default": [],
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "airline": {
                              "description": "Airline or operator name.",
                              "type": "string",
                              "maxLength": 100
                            },
                            "flightNumber": {
                              "description": "Commercial flight number or private leg identifier.",
                              "type": "string",
                              "maxLength": 30
                            },
                            "origin": {
                              "description": "Origin airport.",
                              "type": "object",
                              "properties": {
                                "code": {
                                  "type": "string",
                                  "minLength": 2,
                                  "maxLength": 4,
                                  "pattern": "^[A-Za-z0-9]+$"
                                },
                                "name": {
                                  "description": "Airport display name.",
                                  "type": "string",
                                  "maxLength": 200
                                },
                                "address": {
                                  "description": "Airport address.",
                                  "type": "string",
                                  "maxLength": 300
                                },
                                "placeId": {
                                  "description": "Google Places ID when available.",
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "terminal": {
                                  "description": "Terminal label.",
                                  "type": "string",
                                  "maxLength": 50
                                },
                                "gate": {
                                  "description": "Gate label.",
                                  "type": "string",
                                  "maxLength": 50
                                },
                                "latitude": {
                                  "description": "Latitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -90,
                                  "maximum": 90
                                },
                                "longitude": {
                                  "description": "Longitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180
                                }
                              },
                              "additionalProperties": false
                            },
                            "destination": {
                              "description": "Destination airport.",
                              "type": "object",
                              "properties": {
                                "code": {
                                  "type": "string",
                                  "minLength": 2,
                                  "maxLength": 4,
                                  "pattern": "^[A-Za-z0-9]+$"
                                },
                                "name": {
                                  "description": "Airport display name.",
                                  "type": "string",
                                  "maxLength": 200
                                },
                                "address": {
                                  "description": "Airport address.",
                                  "type": "string",
                                  "maxLength": 300
                                },
                                "placeId": {
                                  "description": "Google Places ID when available.",
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "terminal": {
                                  "description": "Terminal label.",
                                  "type": "string",
                                  "maxLength": 50
                                },
                                "gate": {
                                  "description": "Gate label.",
                                  "type": "string",
                                  "maxLength": 50
                                },
                                "latitude": {
                                  "description": "Latitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -90,
                                  "maximum": 90
                                },
                                "longitude": {
                                  "description": "Longitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180
                                }
                              },
                              "additionalProperties": false
                            },
                            "originFbo": {
                              "description": "Origin FBO for private flights.",
                              "type": "object",
                              "properties": {
                                "label": {
                                  "description": "Human-readable place label.",
                                  "type": "string",
                                  "maxLength": 200
                                },
                                "address": {
                                  "description": "Street address or venue address.",
                                  "type": "string",
                                  "maxLength": 300
                                },
                                "placeId": {
                                  "description": "Google Places ID when available.",
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "latitude": {
                                  "description": "Latitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -90,
                                  "maximum": 90
                                },
                                "longitude": {
                                  "description": "Longitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180
                                },
                                "timezone": {
                                  "description": "Timezone for this location."
                                }
                              },
                              "additionalProperties": false
                            },
                            "originFboPhone": {
                              "description": "Origin FBO phone number.",
                              "type": "string",
                              "maxLength": 100
                            },
                            "destinationFbo": {
                              "description": "Destination FBO for private flights.",
                              "type": "object",
                              "properties": {
                                "label": {
                                  "description": "Human-readable place label.",
                                  "type": "string",
                                  "maxLength": 200
                                },
                                "address": {
                                  "description": "Street address or venue address.",
                                  "type": "string",
                                  "maxLength": 300
                                },
                                "placeId": {
                                  "description": "Google Places ID when available.",
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "latitude": {
                                  "description": "Latitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -90,
                                  "maximum": 90
                                },
                                "longitude": {
                                  "description": "Longitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180
                                },
                                "timezone": {
                                  "description": "Timezone for this location."
                                }
                              },
                              "additionalProperties": false
                            },
                            "destinationFboPhone": {
                              "description": "Destination FBO phone number.",
                              "type": "string",
                              "maxLength": 100
                            },
                            "departureTime": {
                              "description": "Scheduled departure time.",
                              "type": "string"
                            },
                            "departureTimezone": {
                              "description": "Timezone for the departure time."
                            },
                            "arrivalTime": {
                              "description": "Scheduled arrival time.",
                              "type": "string"
                            },
                            "arrivalTimezone": {
                              "description": "Timezone for the arrival time."
                            }
                          },
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "kind",
                      "flightType",
                      "connections"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "description": "Discriminator for a train schedule item.",
                        "type": "string",
                        "enum": [
                          "train"
                        ]
                      },
                      "confirmationNumber": {
                        "description": "Train booking confirmation number.",
                        "type": "string",
                        "maxLength": 60
                      },
                      "legs": {
                        "description": "Ordered train journey legs.",
                        "minItems": 1,
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "operator": {
                              "description": "Rail operator name.",
                              "type": "string",
                              "maxLength": 100
                            },
                            "trainNumber": {
                              "description": "Train or service number.",
                              "type": "string",
                              "maxLength": 30
                            },
                            "origin": {
                              "description": "Origin train station.",
                              "type": "object",
                              "properties": {
                                "address": {
                                  "description": "Street address or venue address.",
                                  "type": "string",
                                  "maxLength": 300
                                },
                                "placeId": {
                                  "description": "Google Places ID when available.",
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "latitude": {
                                  "description": "Latitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -90,
                                  "maximum": 90
                                },
                                "longitude": {
                                  "description": "Longitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180
                                },
                                "timezone": {
                                  "description": "Timezone for this location."
                                },
                                "name": {
                                  "description": "Train station display name.",
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            },
                            "destination": {
                              "description": "Destination train station.",
                              "type": "object",
                              "properties": {
                                "address": {
                                  "description": "Street address or venue address.",
                                  "type": "string",
                                  "maxLength": 300
                                },
                                "placeId": {
                                  "description": "Google Places ID when available.",
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "latitude": {
                                  "description": "Latitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -90,
                                  "maximum": 90
                                },
                                "longitude": {
                                  "description": "Longitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180
                                },
                                "timezone": {
                                  "description": "Timezone for this location."
                                },
                                "name": {
                                  "description": "Train station display name.",
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            },
                            "originPlatform": {
                              "description": "Departure platform or track.",
                              "type": "string",
                              "maxLength": 50
                            },
                            "destinationPlatform": {
                              "description": "Arrival platform or track.",
                              "type": "string",
                              "maxLength": 50
                            },
                            "departureTime": {
                              "description": "Scheduled train departure time.",
                              "type": "string"
                            },
                            "departureTimezone": {
                              "description": "Timezone for the train departure time."
                            },
                            "arrivalTime": {
                              "description": "Scheduled train arrival time.",
                              "type": "string"
                            },
                            "arrivalTimezone": {
                              "description": "Timezone for the train arrival time."
                            }
                          },
                          "required": [
                            "origin",
                            "destination",
                            "departureTime",
                            "departureTimezone",
                            "arrivalTime",
                            "arrivalTimezone"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "kind",
                      "legs"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "status": {
                "description": "Updated confirmation state.",
                "type": "string",
                "enum": [
                  "confirmed",
                  "unconfirmed"
                ]
              },
              "priority": {
                "description": "Updated schedule item priority.",
                "type": "string",
                "enum": [
                  "normal",
                  "high"
                ]
              },
              "notes": {
                "description": "Updated schedule item notes, or null to clear them.",
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 2000
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              },
              "color": {
                "description": "Updated schedule item color, or null to clear it.",
                "anyOf": [
                  {
                    "description": "Hex color reference for the schedule item label, formatted as a leading # followed by six hexadecimal characters. Use this to color-code the item consistently in calendars, timelines, and schedule views.",
                    "type": "string",
                    "pattern": "^#[0-9a-fA-F]{6}$"
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              },
              "sourceMetadata": {
                "description": "Updated integration metadata, or null to clear it.",
                "anyOf": [
                  {
                    "type": "object",
                    "additionalProperties": {}
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              },
              "visibility": {
                "description": "Updated visibility, or null to clear custom visibility.",
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "groupIds": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        }
                      },
                      "userIds": {
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "updates"
        ],
        "additionalProperties": false
      },
      "ScheduleItemRescheduleRequest": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "description": "Optional aggregate version guard.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "startTime": {
            "description": "New start time as a UTC ISO 8601 timestamp, including the trailing Z UTC designator. The timestamp must be within the associated day's local 48-hour window.",
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "endTime": {
            "description": "New end time as a UTC ISO 8601 timestamp, including the trailing Z UTC designator. Non-flight items must end within the associated day's local 48-hour window; flights may arrive after that window.",
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "startTimezone": {
            "description": "IANA timezone identifier for displaying the new start time, such as America/Chicago."
          },
          "endTimezone": {
            "description": "IANA timezone identifier for displaying the new end time, such as America/Chicago."
          }
        },
        "required": [
          "startTime",
          "endTime",
          "startTimezone",
          "endTimezone"
        ],
        "additionalProperties": false
      },
      "ScheduleItemResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "dayId": {
                "description": "Day that owns the schedule item.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "name": {
                "description": "Schedule item display name.",
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "type": {
                "description": "Schedule item variant. This must match details.kind.",
                "type": "string",
                "enum": [
                  "general",
                  "drive",
                  "flight",
                  "train"
                ]
              },
              "status": {
                "default": "confirmed",
                "description": "Confirmation state for the schedule item.",
                "type": "string",
                "enum": [
                  "confirmed",
                  "unconfirmed"
                ]
              },
              "priority": {
                "default": "normal",
                "description": "Priority used to draw attention to important schedule items.",
                "type": "string",
                "enum": [
                  "normal",
                  "high"
                ]
              },
              "startTime": {
                "description": "Schedule item start time as a UTC ISO 8601 timestamp, including the trailing Z UTC designator. The timestamp must fall within the associated day's local 48-hour window.",
                "type": "string"
              },
              "endTime": {
                "description": "Schedule item end time as a UTC ISO 8601 timestamp, including the trailing Z UTC designator. Non-flight items must end within the associated day's local 48-hour window; flights may arrive after that window.",
                "type": "string"
              },
              "startTimezone": {
                "description": "IANA timezone identifier for displaying the start time, such as America/Chicago."
              },
              "endTimezone": {
                "description": "IANA timezone identifier for displaying the end time, such as America/Chicago."
              },
              "details": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "description": "Discriminator for a general schedule item.",
                        "type": "string",
                        "enum": [
                          "general"
                        ]
                      },
                      "location": {
                        "description": "Optional location for the general item.",
                        "type": "object",
                        "properties": {
                          "label": {
                            "description": "Human-readable place label.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "address": {
                            "description": "Street address or venue address.",
                            "type": "string",
                            "maxLength": 300
                          },
                          "placeId": {
                            "description": "Google Places ID when available.",
                            "type": "string",
                            "maxLength": 255
                          },
                          "latitude": {
                            "description": "Latitude in decimal degrees.",
                            "type": "number",
                            "minimum": -90,
                            "maximum": 90
                          },
                          "longitude": {
                            "description": "Longitude in decimal degrees.",
                            "type": "number",
                            "minimum": -180,
                            "maximum": 180
                          },
                          "timezone": {
                            "description": "Timezone for this location."
                          }
                        },
                        "additionalProperties": false
                      },
                      "metadata": {
                        "description": "Integration-specific metadata.",
                        "type": "object",
                        "additionalProperties": {}
                      }
                    },
                    "required": [
                      "kind"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "description": "Discriminator for a drive schedule item.",
                        "type": "string",
                        "enum": [
                          "drive"
                        ]
                      },
                      "transportMode": {
                        "description": "Ground transportation mode. Omitted values are treated as self_drive for compatibility.",
                        "type": "string",
                        "enum": [
                          "self_drive",
                          "car_service",
                          "runner",
                          "bus",
                          "taxi",
                          "rideshare",
                          "other"
                        ]
                      },
                      "includesFerry": {
                        "description": "Whether this drive includes a ferry segment.",
                        "type": "boolean"
                      },
                      "provider": {
                        "description": "Transportation provider or company.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "confirmationNumber": {
                        "description": "Transportation booking or confirmation number.",
                        "type": "string",
                        "maxLength": 60
                      },
                      "driverName": {
                        "description": "Driver or runner name.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "contact": {
                        "description": "Driver, runner, or provider contact details.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "vehicleDescription": {
                        "description": "Vehicle class, type, or identifying description.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "pickupInstructions": {
                        "description": "Pickup instructions for the traveler.",
                        "type": "string",
                        "maxLength": 500
                      },
                      "otherDescription": {
                        "description": "Description of an Other transportation mode.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "origin": {
                        "description": "Drive origin.",
                        "type": "object",
                        "properties": {
                          "label": {
                            "description": "Human-readable place label.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "address": {
                            "description": "Street address or venue address.",
                            "type": "string",
                            "maxLength": 300
                          },
                          "placeId": {
                            "description": "Google Places ID when available.",
                            "type": "string",
                            "maxLength": 255
                          },
                          "latitude": {
                            "description": "Latitude in decimal degrees.",
                            "type": "number",
                            "minimum": -90,
                            "maximum": 90
                          },
                          "longitude": {
                            "description": "Longitude in decimal degrees.",
                            "type": "number",
                            "minimum": -180,
                            "maximum": 180
                          },
                          "timezone": {
                            "description": "Timezone for this location."
                          }
                        },
                        "additionalProperties": false
                      },
                      "stops": {
                        "description": "Ordered intermediate stops between the drive origin and destination. Each stop ID must be unique. Array order is route order; send an empty array to clear all stops.",
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "id": {
                              "description": "Stable identifier for this intermediate drive stop.",
                              "type": "string",
                              "format": "uuid",
                              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                            },
                            "location": {
                              "description": "Intermediate location visited by the drive.",
                              "type": "object",
                              "properties": {
                                "label": {
                                  "description": "Human-readable place label.",
                                  "type": "string",
                                  "maxLength": 200
                                },
                                "address": {
                                  "description": "Street address or venue address.",
                                  "type": "string",
                                  "maxLength": 300
                                },
                                "placeId": {
                                  "description": "Google Places ID when available.",
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "latitude": {
                                  "description": "Latitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -90,
                                  "maximum": 90
                                },
                                "longitude": {
                                  "description": "Longitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180
                                },
                                "timezone": {
                                  "description": "Timezone for this location."
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "id",
                            "location"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "destination": {
                        "description": "Drive destination.",
                        "type": "object",
                        "properties": {
                          "label": {
                            "description": "Human-readable place label.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "address": {
                            "description": "Street address or venue address.",
                            "type": "string",
                            "maxLength": 300
                          },
                          "placeId": {
                            "description": "Google Places ID when available.",
                            "type": "string",
                            "maxLength": 255
                          },
                          "latitude": {
                            "description": "Latitude in decimal degrees.",
                            "type": "number",
                            "minimum": -90,
                            "maximum": 90
                          },
                          "longitude": {
                            "description": "Longitude in decimal degrees.",
                            "type": "number",
                            "minimum": -180,
                            "maximum": 180
                          },
                          "timezone": {
                            "description": "Timezone for this location."
                          }
                        },
                        "additionalProperties": false
                      },
                      "distanceKm": {
                        "description": "Drive distance in kilometers.",
                        "type": "number",
                        "minimum": 0
                      },
                      "distanceMiles": {
                        "description": "Drive distance in miles.",
                        "type": "number",
                        "minimum": 0
                      },
                      "durationMinutes": {
                        "description": "Expected drive duration in minutes.",
                        "type": "number",
                        "minimum": 0
                      },
                      "vehicle": {
                        "description": "Vehicle assigned to the drive. Coming soon in the RoadOps app.",
                        "type": "string",
                        "maxLength": 100
                      },
                      "notes": {
                        "description": "Drive-specific notes.",
                        "type": "string",
                        "maxLength": 500
                      }
                    },
                    "required": [
                      "kind"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "description": "Discriminator for a flight schedule item.",
                        "type": "string",
                        "enum": [
                          "flight"
                        ]
                      },
                      "flightType": {
                        "description": "Whether the flight is commercial or private.",
                        "default": "commercial",
                        "type": "string",
                        "enum": [
                          "commercial",
                          "private"
                        ]
                      },
                      "confirmationNumber": {
                        "description": "Booking confirmation number.",
                        "type": "string",
                        "maxLength": 60
                      },
                      "tailNumber": {
                        "description": "Private aircraft tail number.",
                        "type": "string",
                        "maxLength": 20
                      },
                      "aircraftType": {
                        "description": "Private aircraft type.",
                        "type": "string",
                        "maxLength": 100
                      },
                      "passengerCapacity": {
                        "description": "Passenger capacity for the private aircraft.",
                        "type": "integer",
                        "exclusiveMinimum": true,
                        "maximum": 9007199254740991
                      },
                      "passengers": {
                        "description": "RoadOps member IDs traveling on this flight. Coming soon in the RoadOps app.",
                        "maxItems": 100,
                        "type": "array",
                        "items": {
                          "description": "RoadOps member ID for a passenger.",
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        }
                      },
                      "connections": {
                        "description": "Ordered flight legs or connections.",
                        "default": [],
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "airline": {
                              "description": "Airline or operator name.",
                              "type": "string",
                              "maxLength": 100
                            },
                            "flightNumber": {
                              "description": "Commercial flight number or private leg identifier.",
                              "type": "string",
                              "maxLength": 30
                            },
                            "origin": {
                              "description": "Origin airport.",
                              "type": "object",
                              "properties": {
                                "code": {
                                  "type": "string",
                                  "minLength": 2,
                                  "maxLength": 4,
                                  "pattern": "^[A-Za-z0-9]+$"
                                },
                                "name": {
                                  "description": "Airport display name.",
                                  "type": "string",
                                  "maxLength": 200
                                },
                                "address": {
                                  "description": "Airport address.",
                                  "type": "string",
                                  "maxLength": 300
                                },
                                "placeId": {
                                  "description": "Google Places ID when available.",
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "terminal": {
                                  "description": "Terminal label.",
                                  "type": "string",
                                  "maxLength": 50
                                },
                                "gate": {
                                  "description": "Gate label.",
                                  "type": "string",
                                  "maxLength": 50
                                },
                                "latitude": {
                                  "description": "Latitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -90,
                                  "maximum": 90
                                },
                                "longitude": {
                                  "description": "Longitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180
                                }
                              },
                              "additionalProperties": false
                            },
                            "destination": {
                              "description": "Destination airport.",
                              "type": "object",
                              "properties": {
                                "code": {
                                  "type": "string",
                                  "minLength": 2,
                                  "maxLength": 4,
                                  "pattern": "^[A-Za-z0-9]+$"
                                },
                                "name": {
                                  "description": "Airport display name.",
                                  "type": "string",
                                  "maxLength": 200
                                },
                                "address": {
                                  "description": "Airport address.",
                                  "type": "string",
                                  "maxLength": 300
                                },
                                "placeId": {
                                  "description": "Google Places ID when available.",
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "terminal": {
                                  "description": "Terminal label.",
                                  "type": "string",
                                  "maxLength": 50
                                },
                                "gate": {
                                  "description": "Gate label.",
                                  "type": "string",
                                  "maxLength": 50
                                },
                                "latitude": {
                                  "description": "Latitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -90,
                                  "maximum": 90
                                },
                                "longitude": {
                                  "description": "Longitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180
                                }
                              },
                              "additionalProperties": false
                            },
                            "originFbo": {
                              "description": "Origin FBO for private flights.",
                              "type": "object",
                              "properties": {
                                "label": {
                                  "description": "Human-readable place label.",
                                  "type": "string",
                                  "maxLength": 200
                                },
                                "address": {
                                  "description": "Street address or venue address.",
                                  "type": "string",
                                  "maxLength": 300
                                },
                                "placeId": {
                                  "description": "Google Places ID when available.",
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "latitude": {
                                  "description": "Latitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -90,
                                  "maximum": 90
                                },
                                "longitude": {
                                  "description": "Longitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180
                                },
                                "timezone": {
                                  "description": "Timezone for this location."
                                }
                              },
                              "additionalProperties": false
                            },
                            "originFboPhone": {
                              "description": "Origin FBO phone number.",
                              "type": "string",
                              "maxLength": 100
                            },
                            "destinationFbo": {
                              "description": "Destination FBO for private flights.",
                              "type": "object",
                              "properties": {
                                "label": {
                                  "description": "Human-readable place label.",
                                  "type": "string",
                                  "maxLength": 200
                                },
                                "address": {
                                  "description": "Street address or venue address.",
                                  "type": "string",
                                  "maxLength": 300
                                },
                                "placeId": {
                                  "description": "Google Places ID when available.",
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "latitude": {
                                  "description": "Latitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -90,
                                  "maximum": 90
                                },
                                "longitude": {
                                  "description": "Longitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180
                                },
                                "timezone": {
                                  "description": "Timezone for this location."
                                }
                              },
                              "additionalProperties": false
                            },
                            "destinationFboPhone": {
                              "description": "Destination FBO phone number.",
                              "type": "string",
                              "maxLength": 100
                            },
                            "departureTime": {
                              "description": "Scheduled departure time.",
                              "type": "string"
                            },
                            "departureTimezone": {
                              "description": "Timezone for the departure time."
                            },
                            "arrivalTime": {
                              "description": "Scheduled arrival time.",
                              "type": "string"
                            },
                            "arrivalTimezone": {
                              "description": "Timezone for the arrival time."
                            }
                          },
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "kind",
                      "flightType",
                      "connections"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "kind": {
                        "description": "Discriminator for a train schedule item.",
                        "type": "string",
                        "enum": [
                          "train"
                        ]
                      },
                      "confirmationNumber": {
                        "description": "Train booking confirmation number.",
                        "type": "string",
                        "maxLength": 60
                      },
                      "legs": {
                        "description": "Ordered train journey legs.",
                        "minItems": 1,
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "operator": {
                              "description": "Rail operator name.",
                              "type": "string",
                              "maxLength": 100
                            },
                            "trainNumber": {
                              "description": "Train or service number.",
                              "type": "string",
                              "maxLength": 30
                            },
                            "origin": {
                              "description": "Origin train station.",
                              "type": "object",
                              "properties": {
                                "address": {
                                  "description": "Street address or venue address.",
                                  "type": "string",
                                  "maxLength": 300
                                },
                                "placeId": {
                                  "description": "Google Places ID when available.",
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "latitude": {
                                  "description": "Latitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -90,
                                  "maximum": 90
                                },
                                "longitude": {
                                  "description": "Longitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180
                                },
                                "timezone": {
                                  "description": "Timezone for this location."
                                },
                                "name": {
                                  "description": "Train station display name.",
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            },
                            "destination": {
                              "description": "Destination train station.",
                              "type": "object",
                              "properties": {
                                "address": {
                                  "description": "Street address or venue address.",
                                  "type": "string",
                                  "maxLength": 300
                                },
                                "placeId": {
                                  "description": "Google Places ID when available.",
                                  "type": "string",
                                  "maxLength": 255
                                },
                                "latitude": {
                                  "description": "Latitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -90,
                                  "maximum": 90
                                },
                                "longitude": {
                                  "description": "Longitude in decimal degrees.",
                                  "type": "number",
                                  "minimum": -180,
                                  "maximum": 180
                                },
                                "timezone": {
                                  "description": "Timezone for this location."
                                },
                                "name": {
                                  "description": "Train station display name.",
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 200
                                }
                              },
                              "required": [
                                "name"
                              ],
                              "additionalProperties": false
                            },
                            "originPlatform": {
                              "description": "Departure platform or track.",
                              "type": "string",
                              "maxLength": 50
                            },
                            "destinationPlatform": {
                              "description": "Arrival platform or track.",
                              "type": "string",
                              "maxLength": 50
                            },
                            "departureTime": {
                              "description": "Scheduled train departure time.",
                              "type": "string"
                            },
                            "departureTimezone": {
                              "description": "Timezone for the train departure time."
                            },
                            "arrivalTime": {
                              "description": "Scheduled train arrival time.",
                              "type": "string"
                            },
                            "arrivalTimezone": {
                              "description": "Timezone for the train arrival time."
                            }
                          },
                          "required": [
                            "origin",
                            "destination",
                            "departureTime",
                            "departureTimezone",
                            "arrivalTime",
                            "arrivalTimezone"
                          ],
                          "additionalProperties": false
                        }
                      }
                    },
                    "required": [
                      "kind",
                      "legs"
                    ],
                    "additionalProperties": false
                  }
                ]
              },
              "notes": {
                "description": "Optional schedule item notes.",
                "type": "string",
                "maxLength": 2000
              },
              "color": {
                "description": "Hex color reference for the schedule item label, formatted as a leading # followed by six hexadecimal characters. Use this to color-code the item consistently in calendars, timelines, and schedule views.",
                "type": "string",
                "pattern": "^#[0-9a-fA-F]{6}$"
              },
              "sourceMetadata": {
                "description": "Integration-specific source metadata.",
                "type": "object",
                "additionalProperties": {}
              },
              "visibility": {
                "description": "Optional visibility rules.",
                "type": "object",
                "properties": {
                  "groupIds": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  },
                  "userIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  }
                },
                "additionalProperties": false
              },
              "id": {
                "description": "Schedule item identifier.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "orgId": {
                "description": "Team identifier.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "isDeleted": {
                "description": "Soft-delete flag.",
                "default": false,
                "type": "boolean"
              },
              "version": {
                "description": "Current schedule item aggregate version.",
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "cursor": {
                "description": "Latest event-ledger cursor projected into this schedule item record.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "dayId",
              "name",
              "type",
              "status",
              "priority",
              "startTime",
              "endTime",
              "startTimezone",
              "endTimezone",
              "details",
              "id",
              "orgId",
              "isDeleted",
              "version",
              "cursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "additionalProperties": false
      },
      "ScheduleItemListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "dayId": {
                  "description": "Day that owns the schedule item.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "name": {
                  "description": "Schedule item display name.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "type": {
                  "description": "Schedule item variant. This must match details.kind.",
                  "type": "string",
                  "enum": [
                    "general",
                    "drive",
                    "flight",
                    "train"
                  ]
                },
                "status": {
                  "default": "confirmed",
                  "description": "Confirmation state for the schedule item.",
                  "type": "string",
                  "enum": [
                    "confirmed",
                    "unconfirmed"
                  ]
                },
                "priority": {
                  "default": "normal",
                  "description": "Priority used to draw attention to important schedule items.",
                  "type": "string",
                  "enum": [
                    "normal",
                    "high"
                  ]
                },
                "startTime": {
                  "description": "Schedule item start time as a UTC ISO 8601 timestamp, including the trailing Z UTC designator. The timestamp must fall within the associated day's local 48-hour window.",
                  "type": "string"
                },
                "endTime": {
                  "description": "Schedule item end time as a UTC ISO 8601 timestamp, including the trailing Z UTC designator. Non-flight items must end within the associated day's local 48-hour window; flights may arrive after that window.",
                  "type": "string"
                },
                "startTimezone": {
                  "description": "IANA timezone identifier for displaying the start time, such as America/Chicago."
                },
                "endTimezone": {
                  "description": "IANA timezone identifier for displaying the end time, such as America/Chicago."
                },
                "details": {
                  "oneOf": [
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "description": "Discriminator for a general schedule item.",
                          "type": "string",
                          "enum": [
                            "general"
                          ]
                        },
                        "location": {
                          "description": "Optional location for the general item.",
                          "type": "object",
                          "properties": {
                            "label": {
                              "description": "Human-readable place label.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "address": {
                              "description": "Street address or venue address.",
                              "type": "string",
                              "maxLength": 300
                            },
                            "placeId": {
                              "description": "Google Places ID when available.",
                              "type": "string",
                              "maxLength": 255
                            },
                            "latitude": {
                              "description": "Latitude in decimal degrees.",
                              "type": "number",
                              "minimum": -90,
                              "maximum": 90
                            },
                            "longitude": {
                              "description": "Longitude in decimal degrees.",
                              "type": "number",
                              "minimum": -180,
                              "maximum": 180
                            },
                            "timezone": {
                              "description": "Timezone for this location."
                            }
                          },
                          "additionalProperties": false
                        },
                        "metadata": {
                          "description": "Integration-specific metadata.",
                          "type": "object",
                          "additionalProperties": {}
                        }
                      },
                      "required": [
                        "kind"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "description": "Discriminator for a drive schedule item.",
                          "type": "string",
                          "enum": [
                            "drive"
                          ]
                        },
                        "transportMode": {
                          "description": "Ground transportation mode. Omitted values are treated as self_drive for compatibility.",
                          "type": "string",
                          "enum": [
                            "self_drive",
                            "car_service",
                            "runner",
                            "bus",
                            "taxi",
                            "rideshare",
                            "other"
                          ]
                        },
                        "includesFerry": {
                          "description": "Whether this drive includes a ferry segment.",
                          "type": "boolean"
                        },
                        "provider": {
                          "description": "Transportation provider or company.",
                          "type": "string",
                          "maxLength": 200
                        },
                        "confirmationNumber": {
                          "description": "Transportation booking or confirmation number.",
                          "type": "string",
                          "maxLength": 60
                        },
                        "driverName": {
                          "description": "Driver or runner name.",
                          "type": "string",
                          "maxLength": 200
                        },
                        "contact": {
                          "description": "Driver, runner, or provider contact details.",
                          "type": "string",
                          "maxLength": 200
                        },
                        "vehicleDescription": {
                          "description": "Vehicle class, type, or identifying description.",
                          "type": "string",
                          "maxLength": 200
                        },
                        "pickupInstructions": {
                          "description": "Pickup instructions for the traveler.",
                          "type": "string",
                          "maxLength": 500
                        },
                        "otherDescription": {
                          "description": "Description of an Other transportation mode.",
                          "type": "string",
                          "maxLength": 200
                        },
                        "origin": {
                          "description": "Drive origin.",
                          "type": "object",
                          "properties": {
                            "label": {
                              "description": "Human-readable place label.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "address": {
                              "description": "Street address or venue address.",
                              "type": "string",
                              "maxLength": 300
                            },
                            "placeId": {
                              "description": "Google Places ID when available.",
                              "type": "string",
                              "maxLength": 255
                            },
                            "latitude": {
                              "description": "Latitude in decimal degrees.",
                              "type": "number",
                              "minimum": -90,
                              "maximum": 90
                            },
                            "longitude": {
                              "description": "Longitude in decimal degrees.",
                              "type": "number",
                              "minimum": -180,
                              "maximum": 180
                            },
                            "timezone": {
                              "description": "Timezone for this location."
                            }
                          },
                          "additionalProperties": false
                        },
                        "stops": {
                          "description": "Ordered intermediate stops between the drive origin and destination. Each stop ID must be unique. Array order is route order; send an empty array to clear all stops.",
                          "maxItems": 10,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "id": {
                                "description": "Stable identifier for this intermediate drive stop.",
                                "type": "string",
                                "format": "uuid",
                                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                              },
                              "location": {
                                "description": "Intermediate location visited by the drive.",
                                "type": "object",
                                "properties": {
                                  "label": {
                                    "description": "Human-readable place label.",
                                    "type": "string",
                                    "maxLength": 200
                                  },
                                  "address": {
                                    "description": "Street address or venue address.",
                                    "type": "string",
                                    "maxLength": 300
                                  },
                                  "placeId": {
                                    "description": "Google Places ID when available.",
                                    "type": "string",
                                    "maxLength": 255
                                  },
                                  "latitude": {
                                    "description": "Latitude in decimal degrees.",
                                    "type": "number",
                                    "minimum": -90,
                                    "maximum": 90
                                  },
                                  "longitude": {
                                    "description": "Longitude in decimal degrees.",
                                    "type": "number",
                                    "minimum": -180,
                                    "maximum": 180
                                  },
                                  "timezone": {
                                    "description": "Timezone for this location."
                                  }
                                },
                                "additionalProperties": false
                              }
                            },
                            "required": [
                              "id",
                              "location"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "destination": {
                          "description": "Drive destination.",
                          "type": "object",
                          "properties": {
                            "label": {
                              "description": "Human-readable place label.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "address": {
                              "description": "Street address or venue address.",
                              "type": "string",
                              "maxLength": 300
                            },
                            "placeId": {
                              "description": "Google Places ID when available.",
                              "type": "string",
                              "maxLength": 255
                            },
                            "latitude": {
                              "description": "Latitude in decimal degrees.",
                              "type": "number",
                              "minimum": -90,
                              "maximum": 90
                            },
                            "longitude": {
                              "description": "Longitude in decimal degrees.",
                              "type": "number",
                              "minimum": -180,
                              "maximum": 180
                            },
                            "timezone": {
                              "description": "Timezone for this location."
                            }
                          },
                          "additionalProperties": false
                        },
                        "distanceKm": {
                          "description": "Drive distance in kilometers.",
                          "type": "number",
                          "minimum": 0
                        },
                        "distanceMiles": {
                          "description": "Drive distance in miles.",
                          "type": "number",
                          "minimum": 0
                        },
                        "durationMinutes": {
                          "description": "Expected drive duration in minutes.",
                          "type": "number",
                          "minimum": 0
                        },
                        "vehicle": {
                          "description": "Vehicle assigned to the drive. Coming soon in the RoadOps app.",
                          "type": "string",
                          "maxLength": 100
                        },
                        "notes": {
                          "description": "Drive-specific notes.",
                          "type": "string",
                          "maxLength": 500
                        }
                      },
                      "required": [
                        "kind"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "description": "Discriminator for a flight schedule item.",
                          "type": "string",
                          "enum": [
                            "flight"
                          ]
                        },
                        "flightType": {
                          "description": "Whether the flight is commercial or private.",
                          "default": "commercial",
                          "type": "string",
                          "enum": [
                            "commercial",
                            "private"
                          ]
                        },
                        "confirmationNumber": {
                          "description": "Booking confirmation number.",
                          "type": "string",
                          "maxLength": 60
                        },
                        "tailNumber": {
                          "description": "Private aircraft tail number.",
                          "type": "string",
                          "maxLength": 20
                        },
                        "aircraftType": {
                          "description": "Private aircraft type.",
                          "type": "string",
                          "maxLength": 100
                        },
                        "passengerCapacity": {
                          "description": "Passenger capacity for the private aircraft.",
                          "type": "integer",
                          "exclusiveMinimum": true,
                          "maximum": 9007199254740991
                        },
                        "passengers": {
                          "description": "RoadOps member IDs traveling on this flight. Coming soon in the RoadOps app.",
                          "maxItems": 100,
                          "type": "array",
                          "items": {
                            "description": "RoadOps member ID for a passenger.",
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                          }
                        },
                        "connections": {
                          "description": "Ordered flight legs or connections.",
                          "default": [],
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "airline": {
                                "description": "Airline or operator name.",
                                "type": "string",
                                "maxLength": 100
                              },
                              "flightNumber": {
                                "description": "Commercial flight number or private leg identifier.",
                                "type": "string",
                                "maxLength": 30
                              },
                              "origin": {
                                "description": "Origin airport.",
                                "type": "object",
                                "properties": {
                                  "code": {
                                    "type": "string",
                                    "minLength": 2,
                                    "maxLength": 4,
                                    "pattern": "^[A-Za-z0-9]+$"
                                  },
                                  "name": {
                                    "description": "Airport display name.",
                                    "type": "string",
                                    "maxLength": 200
                                  },
                                  "address": {
                                    "description": "Airport address.",
                                    "type": "string",
                                    "maxLength": 300
                                  },
                                  "placeId": {
                                    "description": "Google Places ID when available.",
                                    "type": "string",
                                    "maxLength": 255
                                  },
                                  "terminal": {
                                    "description": "Terminal label.",
                                    "type": "string",
                                    "maxLength": 50
                                  },
                                  "gate": {
                                    "description": "Gate label.",
                                    "type": "string",
                                    "maxLength": 50
                                  },
                                  "latitude": {
                                    "description": "Latitude in decimal degrees.",
                                    "type": "number",
                                    "minimum": -90,
                                    "maximum": 90
                                  },
                                  "longitude": {
                                    "description": "Longitude in decimal degrees.",
                                    "type": "number",
                                    "minimum": -180,
                                    "maximum": 180
                                  }
                                },
                                "additionalProperties": false
                              },
                              "destination": {
                                "description": "Destination airport.",
                                "type": "object",
                                "properties": {
                                  "code": {
                                    "type": "string",
                                    "minLength": 2,
                                    "maxLength": 4,
                                    "pattern": "^[A-Za-z0-9]+$"
                                  },
                                  "name": {
                                    "description": "Airport display name.",
                                    "type": "string",
                                    "maxLength": 200
                                  },
                                  "address": {
                                    "description": "Airport address.",
                                    "type": "string",
                                    "maxLength": 300
                                  },
                                  "placeId": {
                                    "description": "Google Places ID when available.",
                                    "type": "string",
                                    "maxLength": 255
                                  },
                                  "terminal": {
                                    "description": "Terminal label.",
                                    "type": "string",
                                    "maxLength": 50
                                  },
                                  "gate": {
                                    "description": "Gate label.",
                                    "type": "string",
                                    "maxLength": 50
                                  },
                                  "latitude": {
                                    "description": "Latitude in decimal degrees.",
                                    "type": "number",
                                    "minimum": -90,
                                    "maximum": 90
                                  },
                                  "longitude": {
                                    "description": "Longitude in decimal degrees.",
                                    "type": "number",
                                    "minimum": -180,
                                    "maximum": 180
                                  }
                                },
                                "additionalProperties": false
                              },
                              "originFbo": {
                                "description": "Origin FBO for private flights.",
                                "type": "object",
                                "properties": {
                                  "label": {
                                    "description": "Human-readable place label.",
                                    "type": "string",
                                    "maxLength": 200
                                  },
                                  "address": {
                                    "description": "Street address or venue address.",
                                    "type": "string",
                                    "maxLength": 300
                                  },
                                  "placeId": {
                                    "description": "Google Places ID when available.",
                                    "type": "string",
                                    "maxLength": 255
                                  },
                                  "latitude": {
                                    "description": "Latitude in decimal degrees.",
                                    "type": "number",
                                    "minimum": -90,
                                    "maximum": 90
                                  },
                                  "longitude": {
                                    "description": "Longitude in decimal degrees.",
                                    "type": "number",
                                    "minimum": -180,
                                    "maximum": 180
                                  },
                                  "timezone": {
                                    "description": "Timezone for this location."
                                  }
                                },
                                "additionalProperties": false
                              },
                              "originFboPhone": {
                                "description": "Origin FBO phone number.",
                                "type": "string",
                                "maxLength": 100
                              },
                              "destinationFbo": {
                                "description": "Destination FBO for private flights.",
                                "type": "object",
                                "properties": {
                                  "label": {
                                    "description": "Human-readable place label.",
                                    "type": "string",
                                    "maxLength": 200
                                  },
                                  "address": {
                                    "description": "Street address or venue address.",
                                    "type": "string",
                                    "maxLength": 300
                                  },
                                  "placeId": {
                                    "description": "Google Places ID when available.",
                                    "type": "string",
                                    "maxLength": 255
                                  },
                                  "latitude": {
                                    "description": "Latitude in decimal degrees.",
                                    "type": "number",
                                    "minimum": -90,
                                    "maximum": 90
                                  },
                                  "longitude": {
                                    "description": "Longitude in decimal degrees.",
                                    "type": "number",
                                    "minimum": -180,
                                    "maximum": 180
                                  },
                                  "timezone": {
                                    "description": "Timezone for this location."
                                  }
                                },
                                "additionalProperties": false
                              },
                              "destinationFboPhone": {
                                "description": "Destination FBO phone number.",
                                "type": "string",
                                "maxLength": 100
                              },
                              "departureTime": {
                                "description": "Scheduled departure time.",
                                "type": "string"
                              },
                              "departureTimezone": {
                                "description": "Timezone for the departure time."
                              },
                              "arrivalTime": {
                                "description": "Scheduled arrival time.",
                                "type": "string"
                              },
                              "arrivalTimezone": {
                                "description": "Timezone for the arrival time."
                              }
                            },
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "kind",
                        "flightType",
                        "connections"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "kind": {
                          "description": "Discriminator for a train schedule item.",
                          "type": "string",
                          "enum": [
                            "train"
                          ]
                        },
                        "confirmationNumber": {
                          "description": "Train booking confirmation number.",
                          "type": "string",
                          "maxLength": 60
                        },
                        "legs": {
                          "description": "Ordered train journey legs.",
                          "minItems": 1,
                          "maxItems": 20,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "operator": {
                                "description": "Rail operator name.",
                                "type": "string",
                                "maxLength": 100
                              },
                              "trainNumber": {
                                "description": "Train or service number.",
                                "type": "string",
                                "maxLength": 30
                              },
                              "origin": {
                                "description": "Origin train station.",
                                "type": "object",
                                "properties": {
                                  "address": {
                                    "description": "Street address or venue address.",
                                    "type": "string",
                                    "maxLength": 300
                                  },
                                  "placeId": {
                                    "description": "Google Places ID when available.",
                                    "type": "string",
                                    "maxLength": 255
                                  },
                                  "latitude": {
                                    "description": "Latitude in decimal degrees.",
                                    "type": "number",
                                    "minimum": -90,
                                    "maximum": 90
                                  },
                                  "longitude": {
                                    "description": "Longitude in decimal degrees.",
                                    "type": "number",
                                    "minimum": -180,
                                    "maximum": 180
                                  },
                                  "timezone": {
                                    "description": "Timezone for this location."
                                  },
                                  "name": {
                                    "description": "Train station display name.",
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "name"
                                ],
                                "additionalProperties": false
                              },
                              "destination": {
                                "description": "Destination train station.",
                                "type": "object",
                                "properties": {
                                  "address": {
                                    "description": "Street address or venue address.",
                                    "type": "string",
                                    "maxLength": 300
                                  },
                                  "placeId": {
                                    "description": "Google Places ID when available.",
                                    "type": "string",
                                    "maxLength": 255
                                  },
                                  "latitude": {
                                    "description": "Latitude in decimal degrees.",
                                    "type": "number",
                                    "minimum": -90,
                                    "maximum": 90
                                  },
                                  "longitude": {
                                    "description": "Longitude in decimal degrees.",
                                    "type": "number",
                                    "minimum": -180,
                                    "maximum": 180
                                  },
                                  "timezone": {
                                    "description": "Timezone for this location."
                                  },
                                  "name": {
                                    "description": "Train station display name.",
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 200
                                  }
                                },
                                "required": [
                                  "name"
                                ],
                                "additionalProperties": false
                              },
                              "originPlatform": {
                                "description": "Departure platform or track.",
                                "type": "string",
                                "maxLength": 50
                              },
                              "destinationPlatform": {
                                "description": "Arrival platform or track.",
                                "type": "string",
                                "maxLength": 50
                              },
                              "departureTime": {
                                "description": "Scheduled train departure time.",
                                "type": "string"
                              },
                              "departureTimezone": {
                                "description": "Timezone for the train departure time."
                              },
                              "arrivalTime": {
                                "description": "Scheduled train arrival time.",
                                "type": "string"
                              },
                              "arrivalTimezone": {
                                "description": "Timezone for the train arrival time."
                              }
                            },
                            "required": [
                              "origin",
                              "destination",
                              "departureTime",
                              "departureTimezone",
                              "arrivalTime",
                              "arrivalTimezone"
                            ],
                            "additionalProperties": false
                          }
                        }
                      },
                      "required": [
                        "kind",
                        "legs"
                      ],
                      "additionalProperties": false
                    }
                  ]
                },
                "notes": {
                  "description": "Optional schedule item notes.",
                  "type": "string",
                  "maxLength": 2000
                },
                "color": {
                  "description": "Hex color reference for the schedule item label, formatted as a leading # followed by six hexadecimal characters. Use this to color-code the item consistently in calendars, timelines, and schedule views.",
                  "type": "string",
                  "pattern": "^#[0-9a-fA-F]{6}$"
                },
                "sourceMetadata": {
                  "description": "Integration-specific source metadata.",
                  "type": "object",
                  "additionalProperties": {}
                },
                "visibility": {
                  "description": "Optional visibility rules.",
                  "type": "object",
                  "properties": {
                    "groupIds": {
                      "maxItems": 50,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      }
                    },
                    "userIds": {
                      "maxItems": 200,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "id": {
                  "description": "Schedule item identifier.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "orgId": {
                  "description": "Team identifier.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "isDeleted": {
                  "description": "Soft-delete flag.",
                  "default": false,
                  "type": "boolean"
                },
                "version": {
                  "description": "Current schedule item aggregate version.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "cursor": {
                  "description": "Latest event-ledger cursor projected into this schedule item record.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "dayId",
                "name",
                "type",
                "status",
                "priority",
                "startTime",
                "endTime",
                "startTimezone",
                "endTimezone",
                "details",
                "id",
                "orgId",
                "isDeleted",
                "version",
                "cursor"
              ],
              "additionalProperties": false
            }
          },
          "page": {
            "type": "object",
            "properties": {
              "limit": {
                "description": "Maximum number of records returned in this page.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "nextCursor": {
                "description": "Cursor to pass as the next request's cursor query parameter, or null when there are no more results.",
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "limit",
              "nextCursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "nullable": true,
                "type": "number"
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "page",
          "meta"
        ],
        "additionalProperties": false
      },
      "EventCreateRequest": {
        "type": "object",
        "properties": {
          "dayId": {
            "description": "Day identifier that owns this event.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "venueId": {
            "description": "Venue identifier for this event.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "name": {
            "description": "Event display name.",
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "notes": {
            "description": "Event notes.",
            "type": "string",
            "maxLength": 2000
          },
          "visibility": {
            "description": "Optional visibility rules for this event.",
            "type": "object",
            "properties": {
              "groupIds": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              },
              "userIds": {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              }
            },
            "additionalProperties": false
          },
          "contacts": {
            "description": "Event contacts. Defaults to an empty list when omitted.",
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "description": "Contact person's name.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "title": {
                  "description": "Contact person's role or job title.",
                  "type": "string",
                  "maxLength": 150
                },
                "phone": {
                  "description": "Contact phone number.",
                  "type": "string",
                  "maxLength": 50,
                  "pattern": "^[+0-9().\\-\\s]+$"
                },
                "email": {
                  "description": "Contact email address.",
                  "type": "string",
                  "maxLength": 200,
                  "format": "email",
                  "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                },
                "notes": {
                  "description": "Short notes about this contact.",
                  "type": "string",
                  "maxLength": 300
                }
              },
              "required": [
                "name"
              ],
              "additionalProperties": false
            }
          },
          "laborCalls": {
            "description": "Labor calls for the event. Defaults to an empty list when omitted.",
            "maxItems": 250,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "laborCall": {
                  "default": "",
                  "type": "string",
                  "maxLength": 200
                },
                "time": {
                  "default": ""
                },
                "isNextDay": {
                  "default": false,
                  "type": "boolean"
                },
                "type": {
                  "default": "",
                  "type": "string",
                  "maxLength": 200
                },
                "location": {
                  "default": "",
                  "type": "string",
                  "maxLength": 200
                },
                "add": {
                  "default": "",
                  "type": "string",
                  "maxLength": 200
                },
                "cut": {
                  "default": "",
                  "type": "string",
                  "maxLength": 200
                },
                "notes": {
                  "default": "",
                  "type": "string",
                  "maxLength": 2000
                }
              },
              "required": [
                "id",
                "laborCall",
                "time",
                "isNextDay",
                "type",
                "location",
                "add",
                "cut",
                "notes"
              ],
              "additionalProperties": false
            }
          },
          "guestList": {
            "description": "Guest list settings. Defaults to an enabled guest list with no seats or ticket allotments when omitted.",
            "type": "object",
            "properties": {
              "enabled": {
                "default": true,
                "type": "boolean"
              },
              "ticketsAllotted": {
                "default": null,
                "nullable": true,
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "cutoffAt": {
                "default": null,
                "nullable": true,
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "willCallPickupInstructions": {
                "default": null,
                "nullable": true,
                "type": "string",
                "maxLength": 4000
              },
              "seats": {
                "default": [],
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    "section": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "row": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "seat": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "ticketTypeId": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    "assignedGuestRequestId": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  },
                  "required": [
                    "id",
                    "section",
                    "row",
                    "seat"
                  ],
                  "additionalProperties": false
                }
              },
              "ticketTypeAllotments": {
                "default": [],
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "ticketTypeId": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    "quantity": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "ticketTypeId",
                    "quantity"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "additionalProperties": false
          },
          "id": {
            "description": "Optional caller-supplied event ID. RoadOps generates one when omitted.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "dayId",
          "venueId"
        ],
        "additionalProperties": false
      },
      "EventUpdateRequest": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "description": "Optional aggregate version guard.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "updates": {
            "type": "object",
            "properties": {
              "name": {
                "description": "Updated event name.",
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "venueId": {
                "description": "Updated venue identifier.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "notes": {
                "description": "Updated event notes, or null to clear them.",
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 2000
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              },
              "visibility": {
                "description": "Updated visibility rules, or null to clear them.",
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "groupIds": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        }
                      },
                      "userIds": {
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              },
              "contacts": {
                "description": "Updated event contact list.",
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "description": "Contact person's name.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200
                    },
                    "title": {
                      "description": "Contact person's role or job title.",
                      "type": "string",
                      "maxLength": 150
                    },
                    "phone": {
                      "description": "Contact phone number.",
                      "type": "string",
                      "maxLength": 50,
                      "pattern": "^[+0-9().\\-\\s]+$"
                    },
                    "email": {
                      "description": "Contact email address.",
                      "type": "string",
                      "maxLength": 200,
                      "format": "email",
                      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                    },
                    "notes": {
                      "description": "Short notes about this contact.",
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "additionalProperties": false
                }
              },
              "laborCalls": {
                "description": "Updated labor calls for the event.",
                "maxItems": 250,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    "laborCall": {
                      "default": "",
                      "type": "string",
                      "maxLength": 200
                    },
                    "time": {
                      "default": ""
                    },
                    "isNextDay": {
                      "default": false,
                      "type": "boolean"
                    },
                    "type": {
                      "default": "",
                      "type": "string",
                      "maxLength": 200
                    },
                    "location": {
                      "default": "",
                      "type": "string",
                      "maxLength": 200
                    },
                    "add": {
                      "default": "",
                      "type": "string",
                      "maxLength": 200
                    },
                    "cut": {
                      "default": "",
                      "type": "string",
                      "maxLength": 200
                    },
                    "notes": {
                      "default": "",
                      "type": "string",
                      "maxLength": 2000
                    }
                  },
                  "required": [
                    "id",
                    "laborCall",
                    "time",
                    "isNextDay",
                    "type",
                    "location",
                    "add",
                    "cut",
                    "notes"
                  ],
                  "additionalProperties": false
                }
              },
              "guestList": {
                "description": "Guest list settings to update.",
                "type": "object",
                "properties": {
                  "enabled": {
                    "default": true,
                    "type": "boolean"
                  },
                  "ticketsAllotted": {
                    "default": null,
                    "nullable": true,
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "cutoffAt": {
                    "default": null,
                    "nullable": true,
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                  },
                  "willCallPickupInstructions": {
                    "default": null,
                    "nullable": true,
                    "type": "string",
                    "maxLength": 4000
                  },
                  "seats": {
                    "default": [],
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "section": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 40
                        },
                        "row": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 40
                        },
                        "seat": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 40
                        },
                        "ticketTypeId": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "assignedGuestRequestId": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        }
                      },
                      "required": [
                        "id",
                        "section",
                        "row",
                        "seat"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "ticketTypeAllotments": {
                    "default": [],
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "ticketTypeId": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "quantity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "ticketTypeId",
                        "quantity"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "updates"
        ],
        "additionalProperties": false
      },
      "EventResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "dayId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "venueId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "notes": {
                "type": "string",
                "maxLength": 2000
              },
              "visibility": {
                "description": "Optional visibility rules for the event.",
                "type": "object",
                "properties": {
                  "groupIds": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  },
                  "userIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  }
                },
                "additionalProperties": false
              },
              "contacts": {
                "default": [],
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "description": "Contact person's name.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200
                    },
                    "title": {
                      "description": "Contact person's role or job title.",
                      "type": "string",
                      "maxLength": 150
                    },
                    "phone": {
                      "description": "Contact phone number.",
                      "type": "string",
                      "maxLength": 50,
                      "pattern": "^[+0-9().\\-\\s]+$"
                    },
                    "email": {
                      "description": "Contact email address.",
                      "type": "string",
                      "maxLength": 200,
                      "format": "email",
                      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                    },
                    "notes": {
                      "description": "Short notes about this contact.",
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "additionalProperties": false
                }
              },
              "laborCalls": {
                "default": [],
                "maxItems": 250,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    "laborCall": {
                      "default": "",
                      "type": "string",
                      "maxLength": 200
                    },
                    "time": {
                      "default": ""
                    },
                    "isNextDay": {
                      "default": false,
                      "type": "boolean"
                    },
                    "type": {
                      "default": "",
                      "type": "string",
                      "maxLength": 200
                    },
                    "location": {
                      "default": "",
                      "type": "string",
                      "maxLength": 200
                    },
                    "add": {
                      "default": "",
                      "type": "string",
                      "maxLength": 200
                    },
                    "cut": {
                      "default": "",
                      "type": "string",
                      "maxLength": 200
                    },
                    "notes": {
                      "default": "",
                      "type": "string",
                      "maxLength": 2000
                    }
                  },
                  "required": [
                    "id",
                    "laborCall",
                    "time",
                    "isNextDay",
                    "type",
                    "location",
                    "add",
                    "cut",
                    "notes"
                  ],
                  "additionalProperties": false
                }
              },
              "guestList": {
                "default": {
                  "enabled": true,
                  "ticketsAllotted": null,
                  "cutoffAt": null,
                  "willCallPickupInstructions": null,
                  "seats": [],
                  "ticketTypeAllotments": []
                },
                "type": "object",
                "properties": {
                  "enabled": {
                    "default": true,
                    "type": "boolean"
                  },
                  "ticketsAllotted": {
                    "default": null,
                    "nullable": true,
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "cutoffAt": {
                    "default": null,
                    "nullable": true,
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                  },
                  "willCallPickupInstructions": {
                    "default": null,
                    "nullable": true,
                    "type": "string",
                    "maxLength": 4000
                  },
                  "seats": {
                    "default": [],
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "id": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "section": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 40
                        },
                        "row": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 40
                        },
                        "seat": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 40
                        },
                        "ticketTypeId": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "assignedGuestRequestId": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        }
                      },
                      "required": [
                        "id",
                        "section",
                        "row",
                        "seat"
                      ],
                      "additionalProperties": false
                    }
                  },
                  "ticketTypeAllotments": {
                    "default": [],
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "ticketTypeId": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "quantity": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "ticketTypeId",
                        "quantity"
                      ],
                      "additionalProperties": false
                    }
                  }
                },
                "required": [
                  "enabled",
                  "ticketsAllotted",
                  "cutoffAt",
                  "willCallPickupInstructions",
                  "seats",
                  "ticketTypeAllotments"
                ],
                "additionalProperties": false
              },
              "id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "orgId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "isDeleted": {
                "default": false,
                "type": "boolean"
              },
              "version": {
                "description": "Current event aggregate version.",
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "cursor": {
                "description": "Latest event-ledger cursor projected into this event record.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "dayId",
              "venueId",
              "name",
              "contacts",
              "laborCalls",
              "guestList",
              "id",
              "orgId",
              "isDeleted",
              "version",
              "cursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "additionalProperties": false
      },
      "EventListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "dayId": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "venueId": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "notes": {
                  "type": "string",
                  "maxLength": 2000
                },
                "visibility": {
                  "description": "Optional visibility rules for the event.",
                  "type": "object",
                  "properties": {
                    "groupIds": {
                      "maxItems": 50,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      }
                    },
                    "userIds": {
                      "maxItems": 200,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "contacts": {
                  "default": [],
                  "maxItems": 50,
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "description": "Contact person's name.",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "title": {
                        "description": "Contact person's role or job title.",
                        "type": "string",
                        "maxLength": 150
                      },
                      "phone": {
                        "description": "Contact phone number.",
                        "type": "string",
                        "maxLength": 50,
                        "pattern": "^[+0-9().\\-\\s]+$"
                      },
                      "email": {
                        "description": "Contact email address.",
                        "type": "string",
                        "maxLength": 200,
                        "format": "email",
                        "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                      },
                      "notes": {
                        "description": "Short notes about this contact.",
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "required": [
                      "name"
                    ],
                    "additionalProperties": false
                  }
                },
                "laborCalls": {
                  "default": [],
                  "maxItems": 250,
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      },
                      "laborCall": {
                        "default": "",
                        "type": "string",
                        "maxLength": 200
                      },
                      "time": {
                        "default": ""
                      },
                      "isNextDay": {
                        "default": false,
                        "type": "boolean"
                      },
                      "type": {
                        "default": "",
                        "type": "string",
                        "maxLength": 200
                      },
                      "location": {
                        "default": "",
                        "type": "string",
                        "maxLength": 200
                      },
                      "add": {
                        "default": "",
                        "type": "string",
                        "maxLength": 200
                      },
                      "cut": {
                        "default": "",
                        "type": "string",
                        "maxLength": 200
                      },
                      "notes": {
                        "default": "",
                        "type": "string",
                        "maxLength": 2000
                      }
                    },
                    "required": [
                      "id",
                      "laborCall",
                      "time",
                      "isNextDay",
                      "type",
                      "location",
                      "add",
                      "cut",
                      "notes"
                    ],
                    "additionalProperties": false
                  }
                },
                "guestList": {
                  "default": {
                    "enabled": true,
                    "ticketsAllotted": null,
                    "cutoffAt": null,
                    "willCallPickupInstructions": null,
                    "seats": [],
                    "ticketTypeAllotments": []
                  },
                  "type": "object",
                  "properties": {
                    "enabled": {
                      "default": true,
                      "type": "boolean"
                    },
                    "ticketsAllotted": {
                      "default": null,
                      "nullable": true,
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "cutoffAt": {
                      "default": null,
                      "nullable": true,
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                    },
                    "willCallPickupInstructions": {
                      "default": null,
                      "nullable": true,
                      "type": "string",
                      "maxLength": 4000
                    },
                    "seats": {
                      "default": [],
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                          },
                          "section": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 40
                          },
                          "row": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 40
                          },
                          "seat": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 40
                          },
                          "ticketTypeId": {
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                          },
                          "assignedGuestRequestId": {
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                          }
                        },
                        "required": [
                          "id",
                          "section",
                          "row",
                          "seat"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "ticketTypeAllotments": {
                      "default": [],
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "ticketTypeId": {
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                          },
                          "quantity": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "ticketTypeId",
                          "quantity"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "enabled",
                    "ticketsAllotted",
                    "cutoffAt",
                    "willCallPickupInstructions",
                    "seats",
                    "ticketTypeAllotments"
                  ],
                  "additionalProperties": false
                },
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "orgId": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "isDeleted": {
                  "default": false,
                  "type": "boolean"
                },
                "version": {
                  "description": "Current event aggregate version.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "cursor": {
                  "description": "Latest event-ledger cursor projected into this event record.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "dayId",
                "venueId",
                "name",
                "contacts",
                "laborCalls",
                "guestList",
                "id",
                "orgId",
                "isDeleted",
                "version",
                "cursor"
              ],
              "additionalProperties": false
            }
          },
          "page": {
            "type": "object",
            "properties": {
              "limit": {
                "description": "Maximum number of records returned in this page.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "nextCursor": {
                "description": "Cursor to pass as the next request's cursor query parameter, or null when there are no more results.",
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "limit",
              "nextCursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "nullable": true,
                "type": "number"
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "page",
          "meta"
        ],
        "additionalProperties": false
      },
      "VenueCreateRequest": {
        "type": "object",
        "properties": {
          "officialName": {
            "description": "Official venue name.",
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "displayName": {
            "description": "Preferred display name shown in RoadOps.",
            "nullable": true,
            "type": "string",
            "maxLength": 200
          },
          "previousNames": {
            "description": "Previous or alternate venue names.",
            "default": [],
            "type": "array",
            "items": {
              "type": "string",
              "maxLength": 200
            }
          },
          "address": {
            "description": "Venue street address or complete location address.",
            "type": "string",
            "minLength": 1,
            "maxLength": 300
          },
          "geo": {
            "description": "Venue geographic coordinates.",
            "nullable": true,
            "type": "object",
            "properties": {
              "latitude": {
                "description": "Venue latitude in decimal degrees.",
                "type": "number",
                "minimum": -90,
                "maximum": 90
              },
              "longitude": {
                "description": "Venue longitude in decimal degrees.",
                "type": "number",
                "minimum": -180,
                "maximum": 180
              }
            },
            "required": [
              "latitude",
              "longitude"
            ],
            "additionalProperties": false
          },
          "timezone": {
            "description": "IANA timezone for the venue location, such as America/New_York.",
            "nullable": true
          },
          "primaryContact": {
            "description": "Primary venue contact.",
            "nullable": true,
            "type": "object",
            "properties": {
              "name": {
                "description": "Contact person's name.",
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "title": {
                "description": "Contact person's role or job title.",
                "type": "string",
                "maxLength": 150
              },
              "phone": {
                "description": "Contact phone number.",
                "type": "string",
                "maxLength": 50,
                "pattern": "^[+0-9().\\-\\s]+$"
              },
              "email": {
                "description": "Contact email address.",
                "type": "string",
                "maxLength": 200,
                "format": "email",
                "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
              },
              "notes": {
                "description": "Short notes about this contact.",
                "type": "string",
                "maxLength": 300
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          },
          "contacts": {
            "description": "Additional venue contacts.",
            "default": [],
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "description": "Contact person's name.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "title": {
                  "description": "Contact person's role or job title.",
                  "type": "string",
                  "maxLength": 150
                },
                "phone": {
                  "description": "Contact phone number.",
                  "type": "string",
                  "maxLength": 50,
                  "pattern": "^[+0-9().\\-\\s]+$"
                },
                "email": {
                  "description": "Contact email address.",
                  "type": "string",
                  "maxLength": 200,
                  "format": "email",
                  "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                },
                "notes": {
                  "description": "Short notes about this contact.",
                  "type": "string",
                  "maxLength": 300
                }
              },
              "required": [
                "name"
              ],
              "additionalProperties": false
            }
          },
          "phone": {
            "description": "Main venue phone number.",
            "nullable": true,
            "type": "string",
            "maxLength": 50,
            "pattern": "^[+0-9().\\-\\s]+$"
          },
          "email": {
            "description": "Main venue email address.",
            "nullable": true,
            "type": "string",
            "maxLength": 200,
            "format": "email",
            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
          },
          "website": {
            "description": "Venue website URL.",
            "nullable": true,
            "type": "string",
            "maxLength": 300,
            "format": "uri"
          },
          "externalRefs": {
            "description": "External venue references.",
            "default": [],
            "maxItems": 200,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "source": {
                  "description": "External system or reference source.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "value": {
                  "description": "Identifier or label from the external source.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "url": {
                  "description": "Optional URL for the external reference.",
                  "type": "string",
                  "maxLength": 300,
                  "format": "uri"
                }
              },
              "required": [
                "source",
                "value"
              ],
              "additionalProperties": false
            }
          },
          "tags": {
            "description": "Venue labels used for organization.",
            "default": [],
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 50
            }
          },
          "primaryPhotoAttachmentId": {
            "description": "Attachment ID for the venue primary photo.",
            "nullable": true,
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "notes": {
            "description": "General venue notes.",
            "nullable": true,
            "type": "string",
            "maxLength": 2000
          },
          "capacity": {
            "description": "Venue capacity.",
            "nullable": true,
            "type": "object",
            "properties": {
              "total": {
                "description": "Total venue capacity.",
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "total"
            ],
            "additionalProperties": false
          },
          "capabilities": {
            "description": "Venue capability details.",
            "nullable": true,
            "type": "object",
            "properties": {
              "production": {
                "description": "Production capability details.",
                "type": "object",
                "properties": {
                  "access": {
                    "description": "Load-in and venue access details.",
                    "type": "object",
                    "properties": {
                      "description": {
                        "description": "General venue load-in description.",
                        "type": "string",
                        "maxLength": 2000
                      },
                      "dockCount": {
                        "description": "Number of loading docks.",
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 10
                      },
                      "shorePower": {
                        "description": "Shore power availability for buses or trucks.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "notes": {
                        "description": "Additional load-in or access notes.",
                        "type": "string",
                        "maxLength": 2000
                      }
                    },
                    "additionalProperties": false
                  },
                  "power": {
                    "description": "Production and shore power notes.",
                    "type": "object",
                    "properties": {
                      "show": {
                        "description": "Primary show power feed.",
                        "type": "object",
                        "properties": {
                          "notes": {
                            "description": "Primary show power notes.",
                            "type": "string",
                            "maxLength": 2000
                          }
                        },
                        "additionalProperties": false
                      },
                      "audio": {
                        "description": "Audio power feed.",
                        "type": "object",
                        "properties": {
                          "notes": {
                            "description": "Audio power notes.",
                            "type": "string",
                            "maxLength": 2000
                          }
                        },
                        "additionalProperties": false
                      },
                      "lighting": {
                        "description": "Lighting power feed.",
                        "type": "object",
                        "properties": {
                          "notes": {
                            "description": "Lighting power notes.",
                            "type": "string",
                            "maxLength": 2000
                          }
                        },
                        "additionalProperties": false
                      },
                      "shore": {
                        "description": "Shore power feed.",
                        "type": "object",
                        "properties": {
                          "notes": {
                            "description": "Shore power notes.",
                            "type": "string",
                            "maxLength": 2000
                          }
                        },
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  },
                  "rigging": {
                    "description": "Rigging and fly-system details.",
                    "type": "object",
                    "properties": {
                      "roofType": {
                        "description": "Venue roof or rigging system type.",
                        "type": "string",
                        "maxLength": 150
                      },
                      "maxPointLoadLbs": {
                        "description": "Maximum point load in pounds.",
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 9007199254740991
                      },
                      "flySystem": {
                        "description": "Fly system details.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "notes": {
                        "description": "Additional rigging notes.",
                        "type": "string",
                        "maxLength": 2000
                      }
                    },
                    "additionalProperties": false
                  },
                  "dimensions": {
                    "description": "Stage dimension details.",
                    "type": "object",
                    "properties": {
                      "width": {
                        "description": "Usable stage width.",
                        "type": "object",
                        "properties": {
                          "value": {
                            "description": "Measured numeric value.",
                            "type": "number"
                          },
                          "unit": {
                            "description": "Measurement unit for the value.",
                            "type": "string",
                            "enum": [
                              "ft",
                              "m",
                              "in",
                              "cm"
                            ]
                          },
                          "precision": {
                            "description": "Number of decimal places represented by the measurement.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 4
                          }
                        },
                        "required": [
                          "value",
                          "unit"
                        ],
                        "additionalProperties": false
                      },
                      "depth": {
                        "description": "Usable stage depth.",
                        "type": "object",
                        "properties": {
                          "value": {
                            "description": "Measured numeric value.",
                            "type": "number"
                          },
                          "unit": {
                            "description": "Measurement unit for the value.",
                            "type": "string",
                            "enum": [
                              "ft",
                              "m",
                              "in",
                              "cm"
                            ]
                          },
                          "precision": {
                            "description": "Number of decimal places represented by the measurement.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 4
                          }
                        },
                        "required": [
                          "value",
                          "unit"
                        ],
                        "additionalProperties": false
                      },
                      "height": {
                        "description": "Stage height.",
                        "type": "object",
                        "properties": {
                          "value": {
                            "description": "Measured numeric value.",
                            "type": "number"
                          },
                          "unit": {
                            "description": "Measurement unit for the value.",
                            "type": "string",
                            "enum": [
                              "ft",
                              "m",
                              "in",
                              "cm"
                            ]
                          },
                          "precision": {
                            "description": "Number of decimal places represented by the measurement.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 4
                          }
                        },
                        "required": [
                          "value",
                          "unit"
                        ],
                        "additionalProperties": false
                      },
                      "trimHeight": {
                        "description": "Trim height above the stage.",
                        "type": "object",
                        "properties": {
                          "value": {
                            "description": "Measured numeric value.",
                            "type": "number"
                          },
                          "unit": {
                            "description": "Measurement unit for the value.",
                            "type": "string",
                            "enum": [
                              "ft",
                              "m",
                              "in",
                              "cm"
                            ]
                          },
                          "precision": {
                            "description": "Number of decimal places represented by the measurement.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 4
                          }
                        },
                        "required": [
                          "value",
                          "unit"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  },
                  "stageLayout": {
                    "description": "Stage layout details.",
                    "type": "object",
                    "properties": {
                      "wings": {
                        "description": "Stage wing space notes.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "orchestraPit": {
                        "description": "Orchestra pit details.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "barricade": {
                        "description": "Barricade setup details.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "fohPosition": {
                        "description": "Front-of-house position details.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "risers": {
                        "description": "Riser availability or layout notes.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "notes": {
                        "description": "Additional stage layout notes.",
                        "type": "string",
                        "maxLength": 2000
                      }
                    },
                    "additionalProperties": false
                  },
                  "climateControl": {
                    "description": "Climate control notes for the stage or venue.",
                    "type": "string",
                    "maxLength": 200
                  },
                  "houseLights": {
                    "description": "House light control notes.",
                    "type": "string",
                    "maxLength": 200
                  },
                  "notes": {
                    "description": "Additional production capability notes.",
                    "type": "string",
                    "maxLength": 1000
                  }
                },
                "additionalProperties": false
              },
              "equipment": {
                "description": "Venue equipment details.",
                "type": "object",
                "properties": {
                  "audio": {
                    "description": "Audio equipment details.",
                    "type": "object",
                    "properties": {
                      "summary": {
                        "description": "Short equipment summary.",
                        "type": "string",
                        "maxLength": 2000
                      },
                      "inventory": {
                        "description": "Equipment inventory items.",
                        "default": [],
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "maxLength": 200
                        }
                      }
                    },
                    "required": [
                      "inventory"
                    ],
                    "additionalProperties": false
                  },
                  "lighting": {
                    "description": "Lighting equipment details.",
                    "type": "object",
                    "properties": {
                      "summary": {
                        "description": "Short equipment summary.",
                        "type": "string",
                        "maxLength": 2000
                      },
                      "inventory": {
                        "description": "Equipment inventory items.",
                        "default": [],
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "maxLength": 200
                        }
                      }
                    },
                    "required": [
                      "inventory"
                    ],
                    "additionalProperties": false
                  },
                  "video": {
                    "description": "Video equipment details.",
                    "type": "object",
                    "properties": {
                      "summary": {
                        "description": "Short equipment summary.",
                        "type": "string",
                        "maxLength": 2000
                      },
                      "inventory": {
                        "description": "Equipment inventory items.",
                        "default": [],
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "maxLength": 200
                        }
                      }
                    },
                    "required": [
                      "inventory"
                    ],
                    "additionalProperties": false
                  },
                  "staging": {
                    "description": "Staging equipment details.",
                    "type": "object",
                    "properties": {
                      "summary": {
                        "description": "Short equipment summary.",
                        "type": "string",
                        "maxLength": 2000
                      },
                      "inventory": {
                        "description": "Equipment inventory items.",
                        "default": [],
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "maxLength": 200
                        }
                      }
                    },
                    "required": [
                      "inventory"
                    ],
                    "additionalProperties": false
                  },
                  "backline": {
                    "description": "Backline equipment details.",
                    "type": "object",
                    "properties": {
                      "summary": {
                        "description": "Short equipment summary.",
                        "type": "string",
                        "maxLength": 2000
                      },
                      "inventory": {
                        "description": "Equipment inventory items.",
                        "default": [],
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "maxLength": 200
                        }
                      }
                    },
                    "required": [
                      "inventory"
                    ],
                    "additionalProperties": false
                  },
                  "other": {
                    "description": "Other venue equipment details.",
                    "type": "object",
                    "properties": {
                      "summary": {
                        "description": "Short equipment summary.",
                        "type": "string",
                        "maxLength": 2000
                      },
                      "inventory": {
                        "description": "Equipment inventory items.",
                        "default": [],
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "maxLength": 200
                        }
                      }
                    },
                    "required": [
                      "inventory"
                    ],
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              },
              "facilities": {
                "description": "Venue facility and hospitality details.",
                "type": "object",
                "properties": {
                  "dressingRooms": {
                    "description": "Dressing room names, counts, or notes.",
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "showers": {
                    "description": "Shower availability.",
                    "anyOf": [
                      {
                        "type": "boolean"
                      },
                      {
                        "type": "string",
                        "maxLength": 300
                      }
                    ]
                  },
                  "laundry": {
                    "description": "Laundry availability or instructions.",
                    "type": "string",
                    "maxLength": 200
                  },
                  "offices": {
                    "description": "Office or production office availability.",
                    "type": "string",
                    "maxLength": 300
                  },
                  "runners": {
                    "description": "Runner availability or notes.",
                    "type": "string",
                    "maxLength": 200
                  },
                  "parking": {
                    "description": "General parking details.",
                    "type": "string",
                    "maxLength": 300
                  },
                  "busParking": {
                    "description": "Bus parking details.",
                    "type": "string",
                    "maxLength": 300
                  },
                  "truckParking": {
                    "description": "Truck parking details.",
                    "type": "string",
                    "maxLength": 300
                  },
                  "shorePower": {
                    "description": "Shore power availability or instructions.",
                    "type": "string",
                    "maxLength": 300
                  },
                  "towels": {
                    "description": "Towel availability or instructions.",
                    "type": "string",
                    "maxLength": 300
                  },
                  "merch": {
                    "description": "Merchandise area or settlement notes.",
                    "type": "string",
                    "maxLength": 300
                  },
                  "catering": {
                    "description": "Venue catering details.",
                    "type": "object",
                    "properties": {
                      "breakfast": {
                        "description": "Breakfast catering notes.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "lunch": {
                        "description": "Lunch catering notes.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "dinner": {
                        "description": "Dinner catering notes.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "location": {
                        "description": "Catering location.",
                        "type": "string",
                        "maxLength": 200
                      }
                    },
                    "additionalProperties": false
                  },
                  "wifi": {
                    "description": "Venue Wi-Fi details.",
                    "type": "object",
                    "properties": {
                      "ssid": {
                        "description": "Venue Wi-Fi network name.",
                        "type": "string",
                        "maxLength": 100
                      },
                      "password": {
                        "description": "Venue Wi-Fi password.",
                        "type": "string",
                        "maxLength": 100
                      },
                      "bandwidthMbps": {
                        "description": "Estimated Wi-Fi bandwidth in Mbps.",
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 100000
                      },
                      "notes": {
                        "description": "Additional Wi-Fi notes.",
                        "type": "string",
                        "maxLength": 200
                      }
                    },
                    "additionalProperties": false
                  },
                  "hospitalityNotes": {
                    "description": "Additional hospitality notes.",
                    "type": "string",
                    "maxLength": 1000
                  }
                },
                "additionalProperties": false
              },
              "logistics": {
                "description": "Venue travel and local logistics details.",
                "type": "object",
                "properties": {
                  "directions": {
                    "description": "Venue directions or arrival instructions.",
                    "type": "string",
                    "maxLength": 2000
                  },
                  "nearestAirports": {
                    "description": "Nearby airports.",
                    "maxItems": 10,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "maxLength": 200
                    }
                  },
                  "areaNotes": {
                    "description": "Additional local area notes.",
                    "type": "string",
                    "maxLength": 1000
                  }
                },
                "additionalProperties": false
              },
              "crew": {
                "description": "Venue crew and labor details.",
                "type": "object",
                "properties": {
                  "localUnion": {
                    "description": "Local union name or number.",
                    "type": "string",
                    "maxLength": 50
                  },
                  "penalties": {
                    "description": "Penalty, meal-break, or overtime notes.",
                    "type": "string",
                    "maxLength": 2000
                  },
                  "notes": {
                    "description": "Additional crew notes.",
                    "type": "string",
                    "maxLength": 2000
                  }
                },
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          },
          "id": {
            "description": "Optional caller-supplied venue ID. RoadOps generates one when omitted.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "officialName",
          "previousNames",
          "address",
          "contacts",
          "externalRefs",
          "tags"
        ],
        "additionalProperties": false
      },
      "VenueUpdateRequest": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "description": "Optional aggregate version guard.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "data": {
            "description": "Venue profile fields to update.",
            "type": "object",
            "properties": {
              "officialName": {
                "description": "Official venue name.",
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "displayName": {
                "description": "Preferred display name shown in RoadOps.",
                "nullable": true,
                "type": "string",
                "maxLength": 200
              },
              "previousNames": {
                "description": "Previous or alternate venue names.",
                "default": [],
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 200
                }
              },
              "address": {
                "description": "Venue street address or complete location address.",
                "type": "string",
                "minLength": 1,
                "maxLength": 300
              },
              "geo": {
                "description": "Venue geographic coordinates.",
                "nullable": true,
                "type": "object",
                "properties": {
                  "latitude": {
                    "description": "Venue latitude in decimal degrees.",
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90
                  },
                  "longitude": {
                    "description": "Venue longitude in decimal degrees.",
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ],
                "additionalProperties": false
              },
              "timezone": {
                "description": "IANA timezone for the venue location, such as America/New_York.",
                "nullable": true
              },
              "primaryContact": {
                "description": "Primary venue contact.",
                "nullable": true,
                "type": "object",
                "properties": {
                  "name": {
                    "description": "Contact person's name.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "title": {
                    "description": "Contact person's role or job title.",
                    "type": "string",
                    "maxLength": 150
                  },
                  "phone": {
                    "description": "Contact phone number.",
                    "type": "string",
                    "maxLength": 50,
                    "pattern": "^[+0-9().\\-\\s]+$"
                  },
                  "email": {
                    "description": "Contact email address.",
                    "type": "string",
                    "maxLength": 200,
                    "format": "email",
                    "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                  },
                  "notes": {
                    "description": "Short notes about this contact.",
                    "type": "string",
                    "maxLength": 300
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              },
              "contacts": {
                "description": "Additional venue contacts.",
                "default": [],
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "description": "Contact person's name.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200
                    },
                    "title": {
                      "description": "Contact person's role or job title.",
                      "type": "string",
                      "maxLength": 150
                    },
                    "phone": {
                      "description": "Contact phone number.",
                      "type": "string",
                      "maxLength": 50,
                      "pattern": "^[+0-9().\\-\\s]+$"
                    },
                    "email": {
                      "description": "Contact email address.",
                      "type": "string",
                      "maxLength": 200,
                      "format": "email",
                      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                    },
                    "notes": {
                      "description": "Short notes about this contact.",
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "additionalProperties": false
                }
              },
              "phone": {
                "description": "Main venue phone number.",
                "nullable": true,
                "type": "string",
                "maxLength": 50,
                "pattern": "^[+0-9().\\-\\s]+$"
              },
              "email": {
                "description": "Main venue email address.",
                "nullable": true,
                "type": "string",
                "maxLength": 200,
                "format": "email",
                "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
              },
              "website": {
                "description": "Venue website URL.",
                "nullable": true,
                "type": "string",
                "maxLength": 300,
                "format": "uri"
              },
              "externalRefs": {
                "description": "External venue references.",
                "default": [],
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "source": {
                      "description": "External system or reference source.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100
                    },
                    "value": {
                      "description": "Identifier or label from the external source.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200
                    },
                    "url": {
                      "description": "Optional URL for the external reference.",
                      "type": "string",
                      "maxLength": 300,
                      "format": "uri"
                    }
                  },
                  "required": [
                    "source",
                    "value"
                  ],
                  "additionalProperties": false
                }
              },
              "tags": {
                "description": "Venue labels used for organization.",
                "default": [],
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 50
                }
              },
              "primaryPhotoAttachmentId": {
                "description": "Attachment ID for the venue primary photo.",
                "nullable": true,
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "notes": {
                "description": "General venue notes.",
                "nullable": true,
                "type": "string",
                "maxLength": 2000
              },
              "capacity": {
                "description": "Venue capacity.",
                "nullable": true,
                "type": "object",
                "properties": {
                  "total": {
                    "description": "Total venue capacity.",
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "total"
                ],
                "additionalProperties": false
              },
              "capabilities": {
                "description": "Venue capability details.",
                "nullable": true,
                "type": "object",
                "properties": {
                  "production": {
                    "description": "Production capability details.",
                    "type": "object",
                    "properties": {
                      "access": {
                        "description": "Load-in and venue access details.",
                        "type": "object",
                        "properties": {
                          "description": {
                            "description": "General venue load-in description.",
                            "type": "string",
                            "maxLength": 2000
                          },
                          "dockCount": {
                            "description": "Number of loading docks.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 10
                          },
                          "shorePower": {
                            "description": "Shore power availability for buses or trucks.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "notes": {
                            "description": "Additional load-in or access notes.",
                            "type": "string",
                            "maxLength": 2000
                          }
                        },
                        "additionalProperties": false
                      },
                      "power": {
                        "description": "Production and shore power notes.",
                        "type": "object",
                        "properties": {
                          "show": {
                            "description": "Primary show power feed.",
                            "type": "object",
                            "properties": {
                              "notes": {
                                "description": "Primary show power notes.",
                                "type": "string",
                                "maxLength": 2000
                              }
                            },
                            "additionalProperties": false
                          },
                          "audio": {
                            "description": "Audio power feed.",
                            "type": "object",
                            "properties": {
                              "notes": {
                                "description": "Audio power notes.",
                                "type": "string",
                                "maxLength": 2000
                              }
                            },
                            "additionalProperties": false
                          },
                          "lighting": {
                            "description": "Lighting power feed.",
                            "type": "object",
                            "properties": {
                              "notes": {
                                "description": "Lighting power notes.",
                                "type": "string",
                                "maxLength": 2000
                              }
                            },
                            "additionalProperties": false
                          },
                          "shore": {
                            "description": "Shore power feed.",
                            "type": "object",
                            "properties": {
                              "notes": {
                                "description": "Shore power notes.",
                                "type": "string",
                                "maxLength": 2000
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "rigging": {
                        "description": "Rigging and fly-system details.",
                        "type": "object",
                        "properties": {
                          "roofType": {
                            "description": "Venue roof or rigging system type.",
                            "type": "string",
                            "maxLength": 150
                          },
                          "maxPointLoadLbs": {
                            "description": "Maximum point load in pounds.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "flySystem": {
                            "description": "Fly system details.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "notes": {
                            "description": "Additional rigging notes.",
                            "type": "string",
                            "maxLength": 2000
                          }
                        },
                        "additionalProperties": false
                      },
                      "dimensions": {
                        "description": "Stage dimension details.",
                        "type": "object",
                        "properties": {
                          "width": {
                            "description": "Usable stage width.",
                            "type": "object",
                            "properties": {
                              "value": {
                                "description": "Measured numeric value.",
                                "type": "number"
                              },
                              "unit": {
                                "description": "Measurement unit for the value.",
                                "type": "string",
                                "enum": [
                                  "ft",
                                  "m",
                                  "in",
                                  "cm"
                                ]
                              },
                              "precision": {
                                "description": "Number of decimal places represented by the measurement.",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 4
                              }
                            },
                            "required": [
                              "value",
                              "unit"
                            ],
                            "additionalProperties": false
                          },
                          "depth": {
                            "description": "Usable stage depth.",
                            "type": "object",
                            "properties": {
                              "value": {
                                "description": "Measured numeric value.",
                                "type": "number"
                              },
                              "unit": {
                                "description": "Measurement unit for the value.",
                                "type": "string",
                                "enum": [
                                  "ft",
                                  "m",
                                  "in",
                                  "cm"
                                ]
                              },
                              "precision": {
                                "description": "Number of decimal places represented by the measurement.",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 4
                              }
                            },
                            "required": [
                              "value",
                              "unit"
                            ],
                            "additionalProperties": false
                          },
                          "height": {
                            "description": "Stage height.",
                            "type": "object",
                            "properties": {
                              "value": {
                                "description": "Measured numeric value.",
                                "type": "number"
                              },
                              "unit": {
                                "description": "Measurement unit for the value.",
                                "type": "string",
                                "enum": [
                                  "ft",
                                  "m",
                                  "in",
                                  "cm"
                                ]
                              },
                              "precision": {
                                "description": "Number of decimal places represented by the measurement.",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 4
                              }
                            },
                            "required": [
                              "value",
                              "unit"
                            ],
                            "additionalProperties": false
                          },
                          "trimHeight": {
                            "description": "Trim height above the stage.",
                            "type": "object",
                            "properties": {
                              "value": {
                                "description": "Measured numeric value.",
                                "type": "number"
                              },
                              "unit": {
                                "description": "Measurement unit for the value.",
                                "type": "string",
                                "enum": [
                                  "ft",
                                  "m",
                                  "in",
                                  "cm"
                                ]
                              },
                              "precision": {
                                "description": "Number of decimal places represented by the measurement.",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 4
                              }
                            },
                            "required": [
                              "value",
                              "unit"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "stageLayout": {
                        "description": "Stage layout details.",
                        "type": "object",
                        "properties": {
                          "wings": {
                            "description": "Stage wing space notes.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "orchestraPit": {
                            "description": "Orchestra pit details.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "barricade": {
                            "description": "Barricade setup details.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "fohPosition": {
                            "description": "Front-of-house position details.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "risers": {
                            "description": "Riser availability or layout notes.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "notes": {
                            "description": "Additional stage layout notes.",
                            "type": "string",
                            "maxLength": 2000
                          }
                        },
                        "additionalProperties": false
                      },
                      "climateControl": {
                        "description": "Climate control notes for the stage or venue.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "houseLights": {
                        "description": "House light control notes.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "notes": {
                        "description": "Additional production capability notes.",
                        "type": "string",
                        "maxLength": 1000
                      }
                    },
                    "additionalProperties": false
                  },
                  "equipment": {
                    "description": "Venue equipment details.",
                    "type": "object",
                    "properties": {
                      "audio": {
                        "description": "Audio equipment details.",
                        "type": "object",
                        "properties": {
                          "summary": {
                            "description": "Short equipment summary.",
                            "type": "string",
                            "maxLength": 2000
                          },
                          "inventory": {
                            "description": "Equipment inventory items.",
                            "default": [],
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "maxLength": 200
                            }
                          }
                        },
                        "required": [
                          "inventory"
                        ],
                        "additionalProperties": false
                      },
                      "lighting": {
                        "description": "Lighting equipment details.",
                        "type": "object",
                        "properties": {
                          "summary": {
                            "description": "Short equipment summary.",
                            "type": "string",
                            "maxLength": 2000
                          },
                          "inventory": {
                            "description": "Equipment inventory items.",
                            "default": [],
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "maxLength": 200
                            }
                          }
                        },
                        "required": [
                          "inventory"
                        ],
                        "additionalProperties": false
                      },
                      "video": {
                        "description": "Video equipment details.",
                        "type": "object",
                        "properties": {
                          "summary": {
                            "description": "Short equipment summary.",
                            "type": "string",
                            "maxLength": 2000
                          },
                          "inventory": {
                            "description": "Equipment inventory items.",
                            "default": [],
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "maxLength": 200
                            }
                          }
                        },
                        "required": [
                          "inventory"
                        ],
                        "additionalProperties": false
                      },
                      "staging": {
                        "description": "Staging equipment details.",
                        "type": "object",
                        "properties": {
                          "summary": {
                            "description": "Short equipment summary.",
                            "type": "string",
                            "maxLength": 2000
                          },
                          "inventory": {
                            "description": "Equipment inventory items.",
                            "default": [],
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "maxLength": 200
                            }
                          }
                        },
                        "required": [
                          "inventory"
                        ],
                        "additionalProperties": false
                      },
                      "backline": {
                        "description": "Backline equipment details.",
                        "type": "object",
                        "properties": {
                          "summary": {
                            "description": "Short equipment summary.",
                            "type": "string",
                            "maxLength": 2000
                          },
                          "inventory": {
                            "description": "Equipment inventory items.",
                            "default": [],
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "maxLength": 200
                            }
                          }
                        },
                        "required": [
                          "inventory"
                        ],
                        "additionalProperties": false
                      },
                      "other": {
                        "description": "Other venue equipment details.",
                        "type": "object",
                        "properties": {
                          "summary": {
                            "description": "Short equipment summary.",
                            "type": "string",
                            "maxLength": 2000
                          },
                          "inventory": {
                            "description": "Equipment inventory items.",
                            "default": [],
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "maxLength": 200
                            }
                          }
                        },
                        "required": [
                          "inventory"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  },
                  "facilities": {
                    "description": "Venue facility and hospitality details.",
                    "type": "object",
                    "properties": {
                      "dressingRooms": {
                        "description": "Dressing room names, counts, or notes.",
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "maxLength": 300
                        }
                      },
                      "showers": {
                        "description": "Shower availability.",
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "type": "string",
                            "maxLength": 300
                          }
                        ]
                      },
                      "laundry": {
                        "description": "Laundry availability or instructions.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "offices": {
                        "description": "Office or production office availability.",
                        "type": "string",
                        "maxLength": 300
                      },
                      "runners": {
                        "description": "Runner availability or notes.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "parking": {
                        "description": "General parking details.",
                        "type": "string",
                        "maxLength": 300
                      },
                      "busParking": {
                        "description": "Bus parking details.",
                        "type": "string",
                        "maxLength": 300
                      },
                      "truckParking": {
                        "description": "Truck parking details.",
                        "type": "string",
                        "maxLength": 300
                      },
                      "shorePower": {
                        "description": "Shore power availability or instructions.",
                        "type": "string",
                        "maxLength": 300
                      },
                      "towels": {
                        "description": "Towel availability or instructions.",
                        "type": "string",
                        "maxLength": 300
                      },
                      "merch": {
                        "description": "Merchandise area or settlement notes.",
                        "type": "string",
                        "maxLength": 300
                      },
                      "catering": {
                        "description": "Venue catering details.",
                        "type": "object",
                        "properties": {
                          "breakfast": {
                            "description": "Breakfast catering notes.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "lunch": {
                            "description": "Lunch catering notes.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "dinner": {
                            "description": "Dinner catering notes.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "location": {
                            "description": "Catering location.",
                            "type": "string",
                            "maxLength": 200
                          }
                        },
                        "additionalProperties": false
                      },
                      "wifi": {
                        "description": "Venue Wi-Fi details.",
                        "type": "object",
                        "properties": {
                          "ssid": {
                            "description": "Venue Wi-Fi network name.",
                            "type": "string",
                            "maxLength": 100
                          },
                          "password": {
                            "description": "Venue Wi-Fi password.",
                            "type": "string",
                            "maxLength": 100
                          },
                          "bandwidthMbps": {
                            "description": "Estimated Wi-Fi bandwidth in Mbps.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 100000
                          },
                          "notes": {
                            "description": "Additional Wi-Fi notes.",
                            "type": "string",
                            "maxLength": 200
                          }
                        },
                        "additionalProperties": false
                      },
                      "hospitalityNotes": {
                        "description": "Additional hospitality notes.",
                        "type": "string",
                        "maxLength": 1000
                      }
                    },
                    "additionalProperties": false
                  },
                  "logistics": {
                    "description": "Venue travel and local logistics details.",
                    "type": "object",
                    "properties": {
                      "directions": {
                        "description": "Venue directions or arrival instructions.",
                        "type": "string",
                        "maxLength": 2000
                      },
                      "nearestAirports": {
                        "description": "Nearby airports.",
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "maxLength": 200
                        }
                      },
                      "areaNotes": {
                        "description": "Additional local area notes.",
                        "type": "string",
                        "maxLength": 1000
                      }
                    },
                    "additionalProperties": false
                  },
                  "crew": {
                    "description": "Venue crew and labor details.",
                    "type": "object",
                    "properties": {
                      "localUnion": {
                        "description": "Local union name or number.",
                        "type": "string",
                        "maxLength": 50
                      },
                      "penalties": {
                        "description": "Penalty, meal-break, or overtime notes.",
                        "type": "string",
                        "maxLength": 2000
                      },
                      "notes": {
                        "description": "Additional crew notes.",
                        "type": "string",
                        "maxLength": 2000
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false
      },
      "VenueDeleteRequest": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "description": "Optional aggregate version guard.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "reason": {
            "description": "Optional reason for deleting the venue.",
            "type": "string",
            "maxLength": 500
          }
        },
        "additionalProperties": false
      },
      "VenueResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "officialName": {
                "description": "Official venue name.",
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "displayName": {
                "description": "Preferred display name shown in RoadOps.",
                "nullable": true,
                "type": "string",
                "maxLength": 200
              },
              "previousNames": {
                "description": "Previous or alternate venue names.",
                "default": [],
                "type": "array",
                "items": {
                  "type": "string",
                  "maxLength": 200
                }
              },
              "address": {
                "description": "Venue street address or complete location address.",
                "type": "string",
                "minLength": 1,
                "maxLength": 300
              },
              "geo": {
                "description": "Venue geographic coordinates.",
                "nullable": true,
                "type": "object",
                "properties": {
                  "latitude": {
                    "description": "Venue latitude in decimal degrees.",
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90
                  },
                  "longitude": {
                    "description": "Venue longitude in decimal degrees.",
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180
                  }
                },
                "required": [
                  "latitude",
                  "longitude"
                ],
                "additionalProperties": false
              },
              "timezone": {
                "description": "IANA timezone for the venue location, such as America/New_York.",
                "nullable": true
              },
              "primaryContact": {
                "description": "Primary venue contact.",
                "nullable": true,
                "type": "object",
                "properties": {
                  "name": {
                    "description": "Contact person's name.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "title": {
                    "description": "Contact person's role or job title.",
                    "type": "string",
                    "maxLength": 150
                  },
                  "phone": {
                    "description": "Contact phone number.",
                    "type": "string",
                    "maxLength": 50,
                    "pattern": "^[+0-9().\\-\\s]+$"
                  },
                  "email": {
                    "description": "Contact email address.",
                    "type": "string",
                    "maxLength": 200,
                    "format": "email",
                    "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                  },
                  "notes": {
                    "description": "Short notes about this contact.",
                    "type": "string",
                    "maxLength": 300
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              },
              "contacts": {
                "description": "Additional venue contacts.",
                "default": [],
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "description": "Contact person's name.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200
                    },
                    "title": {
                      "description": "Contact person's role or job title.",
                      "type": "string",
                      "maxLength": 150
                    },
                    "phone": {
                      "description": "Contact phone number.",
                      "type": "string",
                      "maxLength": 50,
                      "pattern": "^[+0-9().\\-\\s]+$"
                    },
                    "email": {
                      "description": "Contact email address.",
                      "type": "string",
                      "maxLength": 200,
                      "format": "email",
                      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                    },
                    "notes": {
                      "description": "Short notes about this contact.",
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "additionalProperties": false
                }
              },
              "phone": {
                "description": "Main venue phone number.",
                "nullable": true,
                "type": "string",
                "maxLength": 50,
                "pattern": "^[+0-9().\\-\\s]+$"
              },
              "email": {
                "description": "Main venue email address.",
                "nullable": true,
                "type": "string",
                "maxLength": 200,
                "format": "email",
                "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
              },
              "website": {
                "description": "Venue website URL.",
                "nullable": true,
                "type": "string",
                "maxLength": 300,
                "format": "uri"
              },
              "externalRefs": {
                "description": "External venue references.",
                "default": [],
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "source": {
                      "description": "External system or reference source.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 100
                    },
                    "value": {
                      "description": "Identifier or label from the external source.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200
                    },
                    "url": {
                      "description": "Optional URL for the external reference.",
                      "type": "string",
                      "maxLength": 300,
                      "format": "uri"
                    }
                  },
                  "required": [
                    "source",
                    "value"
                  ],
                  "additionalProperties": false
                }
              },
              "tags": {
                "description": "Venue labels used for organization.",
                "default": [],
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 50
                }
              },
              "primaryPhotoAttachmentId": {
                "description": "Attachment ID for the venue primary photo.",
                "nullable": true,
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "notes": {
                "description": "General venue notes.",
                "nullable": true,
                "type": "string",
                "maxLength": 2000
              },
              "id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "orgId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "isDeleted": {
                "default": false,
                "type": "boolean"
              },
              "capacity": {
                "description": "Venue capacity.",
                "nullable": true,
                "type": "object",
                "properties": {
                  "total": {
                    "description": "Total venue capacity.",
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "total"
                ],
                "additionalProperties": false
              },
              "capabilities": {
                "description": "Venue capability details.",
                "nullable": true,
                "type": "object",
                "properties": {
                  "production": {
                    "description": "Production capability details.",
                    "type": "object",
                    "properties": {
                      "access": {
                        "description": "Load-in and venue access details.",
                        "type": "object",
                        "properties": {
                          "description": {
                            "description": "General venue load-in description.",
                            "type": "string",
                            "maxLength": 2000
                          },
                          "dockCount": {
                            "description": "Number of loading docks.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 10
                          },
                          "shorePower": {
                            "description": "Shore power availability for buses or trucks.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "notes": {
                            "description": "Additional load-in or access notes.",
                            "type": "string",
                            "maxLength": 2000
                          }
                        },
                        "additionalProperties": false
                      },
                      "power": {
                        "description": "Production and shore power notes.",
                        "type": "object",
                        "properties": {
                          "show": {
                            "description": "Primary show power feed.",
                            "type": "object",
                            "properties": {
                              "notes": {
                                "description": "Primary show power notes.",
                                "type": "string",
                                "maxLength": 2000
                              }
                            },
                            "additionalProperties": false
                          },
                          "audio": {
                            "description": "Audio power feed.",
                            "type": "object",
                            "properties": {
                              "notes": {
                                "description": "Audio power notes.",
                                "type": "string",
                                "maxLength": 2000
                              }
                            },
                            "additionalProperties": false
                          },
                          "lighting": {
                            "description": "Lighting power feed.",
                            "type": "object",
                            "properties": {
                              "notes": {
                                "description": "Lighting power notes.",
                                "type": "string",
                                "maxLength": 2000
                              }
                            },
                            "additionalProperties": false
                          },
                          "shore": {
                            "description": "Shore power feed.",
                            "type": "object",
                            "properties": {
                              "notes": {
                                "description": "Shore power notes.",
                                "type": "string",
                                "maxLength": 2000
                              }
                            },
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "rigging": {
                        "description": "Rigging and fly-system details.",
                        "type": "object",
                        "properties": {
                          "roofType": {
                            "description": "Venue roof or rigging system type.",
                            "type": "string",
                            "maxLength": 150
                          },
                          "maxPointLoadLbs": {
                            "description": "Maximum point load in pounds.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "flySystem": {
                            "description": "Fly system details.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "notes": {
                            "description": "Additional rigging notes.",
                            "type": "string",
                            "maxLength": 2000
                          }
                        },
                        "additionalProperties": false
                      },
                      "dimensions": {
                        "description": "Stage dimension details.",
                        "type": "object",
                        "properties": {
                          "width": {
                            "description": "Usable stage width.",
                            "type": "object",
                            "properties": {
                              "value": {
                                "description": "Measured numeric value.",
                                "type": "number"
                              },
                              "unit": {
                                "description": "Measurement unit for the value.",
                                "type": "string",
                                "enum": [
                                  "ft",
                                  "m",
                                  "in",
                                  "cm"
                                ]
                              },
                              "precision": {
                                "description": "Number of decimal places represented by the measurement.",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 4
                              }
                            },
                            "required": [
                              "value",
                              "unit"
                            ],
                            "additionalProperties": false
                          },
                          "depth": {
                            "description": "Usable stage depth.",
                            "type": "object",
                            "properties": {
                              "value": {
                                "description": "Measured numeric value.",
                                "type": "number"
                              },
                              "unit": {
                                "description": "Measurement unit for the value.",
                                "type": "string",
                                "enum": [
                                  "ft",
                                  "m",
                                  "in",
                                  "cm"
                                ]
                              },
                              "precision": {
                                "description": "Number of decimal places represented by the measurement.",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 4
                              }
                            },
                            "required": [
                              "value",
                              "unit"
                            ],
                            "additionalProperties": false
                          },
                          "height": {
                            "description": "Stage height.",
                            "type": "object",
                            "properties": {
                              "value": {
                                "description": "Measured numeric value.",
                                "type": "number"
                              },
                              "unit": {
                                "description": "Measurement unit for the value.",
                                "type": "string",
                                "enum": [
                                  "ft",
                                  "m",
                                  "in",
                                  "cm"
                                ]
                              },
                              "precision": {
                                "description": "Number of decimal places represented by the measurement.",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 4
                              }
                            },
                            "required": [
                              "value",
                              "unit"
                            ],
                            "additionalProperties": false
                          },
                          "trimHeight": {
                            "description": "Trim height above the stage.",
                            "type": "object",
                            "properties": {
                              "value": {
                                "description": "Measured numeric value.",
                                "type": "number"
                              },
                              "unit": {
                                "description": "Measurement unit for the value.",
                                "type": "string",
                                "enum": [
                                  "ft",
                                  "m",
                                  "in",
                                  "cm"
                                ]
                              },
                              "precision": {
                                "description": "Number of decimal places represented by the measurement.",
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 4
                              }
                            },
                            "required": [
                              "value",
                              "unit"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "additionalProperties": false
                      },
                      "stageLayout": {
                        "description": "Stage layout details.",
                        "type": "object",
                        "properties": {
                          "wings": {
                            "description": "Stage wing space notes.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "orchestraPit": {
                            "description": "Orchestra pit details.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "barricade": {
                            "description": "Barricade setup details.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "fohPosition": {
                            "description": "Front-of-house position details.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "risers": {
                            "description": "Riser availability or layout notes.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "notes": {
                            "description": "Additional stage layout notes.",
                            "type": "string",
                            "maxLength": 2000
                          }
                        },
                        "additionalProperties": false
                      },
                      "climateControl": {
                        "description": "Climate control notes for the stage or venue.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "houseLights": {
                        "description": "House light control notes.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "notes": {
                        "description": "Additional production capability notes.",
                        "type": "string",
                        "maxLength": 1000
                      }
                    },
                    "additionalProperties": false
                  },
                  "equipment": {
                    "description": "Venue equipment details.",
                    "type": "object",
                    "properties": {
                      "audio": {
                        "description": "Audio equipment details.",
                        "type": "object",
                        "properties": {
                          "summary": {
                            "description": "Short equipment summary.",
                            "type": "string",
                            "maxLength": 2000
                          },
                          "inventory": {
                            "description": "Equipment inventory items.",
                            "default": [],
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "maxLength": 200
                            }
                          }
                        },
                        "required": [
                          "inventory"
                        ],
                        "additionalProperties": false
                      },
                      "lighting": {
                        "description": "Lighting equipment details.",
                        "type": "object",
                        "properties": {
                          "summary": {
                            "description": "Short equipment summary.",
                            "type": "string",
                            "maxLength": 2000
                          },
                          "inventory": {
                            "description": "Equipment inventory items.",
                            "default": [],
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "maxLength": 200
                            }
                          }
                        },
                        "required": [
                          "inventory"
                        ],
                        "additionalProperties": false
                      },
                      "video": {
                        "description": "Video equipment details.",
                        "type": "object",
                        "properties": {
                          "summary": {
                            "description": "Short equipment summary.",
                            "type": "string",
                            "maxLength": 2000
                          },
                          "inventory": {
                            "description": "Equipment inventory items.",
                            "default": [],
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "maxLength": 200
                            }
                          }
                        },
                        "required": [
                          "inventory"
                        ],
                        "additionalProperties": false
                      },
                      "staging": {
                        "description": "Staging equipment details.",
                        "type": "object",
                        "properties": {
                          "summary": {
                            "description": "Short equipment summary.",
                            "type": "string",
                            "maxLength": 2000
                          },
                          "inventory": {
                            "description": "Equipment inventory items.",
                            "default": [],
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "maxLength": 200
                            }
                          }
                        },
                        "required": [
                          "inventory"
                        ],
                        "additionalProperties": false
                      },
                      "backline": {
                        "description": "Backline equipment details.",
                        "type": "object",
                        "properties": {
                          "summary": {
                            "description": "Short equipment summary.",
                            "type": "string",
                            "maxLength": 2000
                          },
                          "inventory": {
                            "description": "Equipment inventory items.",
                            "default": [],
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "maxLength": 200
                            }
                          }
                        },
                        "required": [
                          "inventory"
                        ],
                        "additionalProperties": false
                      },
                      "other": {
                        "description": "Other venue equipment details.",
                        "type": "object",
                        "properties": {
                          "summary": {
                            "description": "Short equipment summary.",
                            "type": "string",
                            "maxLength": 2000
                          },
                          "inventory": {
                            "description": "Equipment inventory items.",
                            "default": [],
                            "maxItems": 200,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "maxLength": 200
                            }
                          }
                        },
                        "required": [
                          "inventory"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "additionalProperties": false
                  },
                  "facilities": {
                    "description": "Venue facility and hospitality details.",
                    "type": "object",
                    "properties": {
                      "dressingRooms": {
                        "description": "Dressing room names, counts, or notes.",
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "maxLength": 300
                        }
                      },
                      "showers": {
                        "description": "Shower availability.",
                        "anyOf": [
                          {
                            "type": "boolean"
                          },
                          {
                            "type": "string",
                            "maxLength": 300
                          }
                        ]
                      },
                      "laundry": {
                        "description": "Laundry availability or instructions.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "offices": {
                        "description": "Office or production office availability.",
                        "type": "string",
                        "maxLength": 300
                      },
                      "runners": {
                        "description": "Runner availability or notes.",
                        "type": "string",
                        "maxLength": 200
                      },
                      "parking": {
                        "description": "General parking details.",
                        "type": "string",
                        "maxLength": 300
                      },
                      "busParking": {
                        "description": "Bus parking details.",
                        "type": "string",
                        "maxLength": 300
                      },
                      "truckParking": {
                        "description": "Truck parking details.",
                        "type": "string",
                        "maxLength": 300
                      },
                      "shorePower": {
                        "description": "Shore power availability or instructions.",
                        "type": "string",
                        "maxLength": 300
                      },
                      "towels": {
                        "description": "Towel availability or instructions.",
                        "type": "string",
                        "maxLength": 300
                      },
                      "merch": {
                        "description": "Merchandise area or settlement notes.",
                        "type": "string",
                        "maxLength": 300
                      },
                      "catering": {
                        "description": "Venue catering details.",
                        "type": "object",
                        "properties": {
                          "breakfast": {
                            "description": "Breakfast catering notes.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "lunch": {
                            "description": "Lunch catering notes.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "dinner": {
                            "description": "Dinner catering notes.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "location": {
                            "description": "Catering location.",
                            "type": "string",
                            "maxLength": 200
                          }
                        },
                        "additionalProperties": false
                      },
                      "wifi": {
                        "description": "Venue Wi-Fi details.",
                        "type": "object",
                        "properties": {
                          "ssid": {
                            "description": "Venue Wi-Fi network name.",
                            "type": "string",
                            "maxLength": 100
                          },
                          "password": {
                            "description": "Venue Wi-Fi password.",
                            "type": "string",
                            "maxLength": 100
                          },
                          "bandwidthMbps": {
                            "description": "Estimated Wi-Fi bandwidth in Mbps.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 100000
                          },
                          "notes": {
                            "description": "Additional Wi-Fi notes.",
                            "type": "string",
                            "maxLength": 200
                          }
                        },
                        "additionalProperties": false
                      },
                      "hospitalityNotes": {
                        "description": "Additional hospitality notes.",
                        "type": "string",
                        "maxLength": 1000
                      }
                    },
                    "additionalProperties": false
                  },
                  "logistics": {
                    "description": "Venue travel and local logistics details.",
                    "type": "object",
                    "properties": {
                      "directions": {
                        "description": "Venue directions or arrival instructions.",
                        "type": "string",
                        "maxLength": 2000
                      },
                      "nearestAirports": {
                        "description": "Nearby airports.",
                        "maxItems": 10,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "maxLength": 200
                        }
                      },
                      "areaNotes": {
                        "description": "Additional local area notes.",
                        "type": "string",
                        "maxLength": 1000
                      }
                    },
                    "additionalProperties": false
                  },
                  "crew": {
                    "description": "Venue crew and labor details.",
                    "type": "object",
                    "properties": {
                      "localUnion": {
                        "description": "Local union name or number.",
                        "type": "string",
                        "maxLength": 50
                      },
                      "penalties": {
                        "description": "Penalty, meal-break, or overtime notes.",
                        "type": "string",
                        "maxLength": 2000
                      },
                      "notes": {
                        "description": "Additional crew notes.",
                        "type": "string",
                        "maxLength": 2000
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              },
              "metadata": {
                "description": "Venue metadata.",
                "type": "object",
                "properties": {
                  "status": {
                    "description": "Venue lifecycle status.",
                    "type": "string",
                    "enum": [
                      "active"
                    ]
                  },
                  "visibility": {
                    "description": "Venue visibility.",
                    "type": "string",
                    "enum": [
                      "org_only"
                    ]
                  },
                  "source": {
                    "description": "Venue source.",
                    "type": "string",
                    "enum": [
                      "org"
                    ]
                  },
                  "dataMode": {
                    "description": "Venue data mode.",
                    "type": "string",
                    "enum": [
                      "org_local"
                    ]
                  },
                  "orgNotes": {
                    "description": "Internal team notes imported from venue tech-pack workflows.",
                    "nullable": true,
                    "type": "string",
                    "maxLength": 2000
                  },
                  "createdAt": {
                    "description": "ISO 8601 timestamp when the venue was created.",
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                  },
                  "updatedAt": {
                    "description": "ISO 8601 timestamp when the venue was last updated.",
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                  }
                },
                "required": [
                  "status",
                  "visibility",
                  "source",
                  "dataMode",
                  "createdAt",
                  "updatedAt"
                ],
                "additionalProperties": false
              },
              "version": {
                "description": "Current venue aggregate version.",
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "cursor": {
                "description": "Latest event-ledger cursor projected into this venue record.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "officialName",
              "previousNames",
              "address",
              "contacts",
              "externalRefs",
              "tags",
              "id",
              "isDeleted",
              "metadata",
              "version",
              "cursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "additionalProperties": false
      },
      "VenueListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "officialName": {
                  "description": "Official venue name.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "displayName": {
                  "description": "Preferred display name shown in RoadOps.",
                  "nullable": true,
                  "type": "string",
                  "maxLength": 200
                },
                "previousNames": {
                  "description": "Previous or alternate venue names.",
                  "default": [],
                  "type": "array",
                  "items": {
                    "type": "string",
                    "maxLength": 200
                  }
                },
                "address": {
                  "description": "Venue street address or complete location address.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 300
                },
                "geo": {
                  "description": "Venue geographic coordinates.",
                  "nullable": true,
                  "type": "object",
                  "properties": {
                    "latitude": {
                      "description": "Venue latitude in decimal degrees.",
                      "type": "number",
                      "minimum": -90,
                      "maximum": 90
                    },
                    "longitude": {
                      "description": "Venue longitude in decimal degrees.",
                      "type": "number",
                      "minimum": -180,
                      "maximum": 180
                    }
                  },
                  "required": [
                    "latitude",
                    "longitude"
                  ],
                  "additionalProperties": false
                },
                "timezone": {
                  "description": "IANA timezone for the venue location, such as America/New_York.",
                  "nullable": true
                },
                "primaryContact": {
                  "description": "Primary venue contact.",
                  "nullable": true,
                  "type": "object",
                  "properties": {
                    "name": {
                      "description": "Contact person's name.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200
                    },
                    "title": {
                      "description": "Contact person's role or job title.",
                      "type": "string",
                      "maxLength": 150
                    },
                    "phone": {
                      "description": "Contact phone number.",
                      "type": "string",
                      "maxLength": 50,
                      "pattern": "^[+0-9().\\-\\s]+$"
                    },
                    "email": {
                      "description": "Contact email address.",
                      "type": "string",
                      "maxLength": 200,
                      "format": "email",
                      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                    },
                    "notes": {
                      "description": "Short notes about this contact.",
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "additionalProperties": false
                },
                "contacts": {
                  "description": "Additional venue contacts.",
                  "default": [],
                  "maxItems": 50,
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "description": "Contact person's name.",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "title": {
                        "description": "Contact person's role or job title.",
                        "type": "string",
                        "maxLength": 150
                      },
                      "phone": {
                        "description": "Contact phone number.",
                        "type": "string",
                        "maxLength": 50,
                        "pattern": "^[+0-9().\\-\\s]+$"
                      },
                      "email": {
                        "description": "Contact email address.",
                        "type": "string",
                        "maxLength": 200,
                        "format": "email",
                        "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                      },
                      "notes": {
                        "description": "Short notes about this contact.",
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "required": [
                      "name"
                    ],
                    "additionalProperties": false
                  }
                },
                "phone": {
                  "description": "Main venue phone number.",
                  "nullable": true,
                  "type": "string",
                  "maxLength": 50,
                  "pattern": "^[+0-9().\\-\\s]+$"
                },
                "email": {
                  "description": "Main venue email address.",
                  "nullable": true,
                  "type": "string",
                  "maxLength": 200,
                  "format": "email",
                  "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                },
                "website": {
                  "description": "Venue website URL.",
                  "nullable": true,
                  "type": "string",
                  "maxLength": 300,
                  "format": "uri"
                },
                "externalRefs": {
                  "description": "External venue references.",
                  "default": [],
                  "maxItems": 200,
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "description": "External system or reference source.",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                      },
                      "value": {
                        "description": "Identifier or label from the external source.",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "url": {
                        "description": "Optional URL for the external reference.",
                        "type": "string",
                        "maxLength": 300,
                        "format": "uri"
                      }
                    },
                    "required": [
                      "source",
                      "value"
                    ],
                    "additionalProperties": false
                  }
                },
                "tags": {
                  "description": "Venue labels used for organization.",
                  "default": [],
                  "maxItems": 50,
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 50
                  }
                },
                "primaryPhotoAttachmentId": {
                  "description": "Attachment ID for the venue primary photo.",
                  "nullable": true,
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "notes": {
                  "description": "General venue notes.",
                  "nullable": true,
                  "type": "string",
                  "maxLength": 2000
                },
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "orgId": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "isDeleted": {
                  "default": false,
                  "type": "boolean"
                },
                "capacity": {
                  "description": "Venue capacity.",
                  "nullable": true,
                  "type": "object",
                  "properties": {
                    "total": {
                      "description": "Total venue capacity.",
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "total"
                  ],
                  "additionalProperties": false
                },
                "capabilities": {
                  "description": "Venue capability details.",
                  "nullable": true,
                  "type": "object",
                  "properties": {
                    "production": {
                      "description": "Production capability details.",
                      "type": "object",
                      "properties": {
                        "access": {
                          "description": "Load-in and venue access details.",
                          "type": "object",
                          "properties": {
                            "description": {
                              "description": "General venue load-in description.",
                              "type": "string",
                              "maxLength": 2000
                            },
                            "dockCount": {
                              "description": "Number of loading docks.",
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 10
                            },
                            "shorePower": {
                              "description": "Shore power availability for buses or trucks.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "notes": {
                              "description": "Additional load-in or access notes.",
                              "type": "string",
                              "maxLength": 2000
                            }
                          },
                          "additionalProperties": false
                        },
                        "power": {
                          "description": "Production and shore power notes.",
                          "type": "object",
                          "properties": {
                            "show": {
                              "description": "Primary show power feed.",
                              "type": "object",
                              "properties": {
                                "notes": {
                                  "description": "Primary show power notes.",
                                  "type": "string",
                                  "maxLength": 2000
                                }
                              },
                              "additionalProperties": false
                            },
                            "audio": {
                              "description": "Audio power feed.",
                              "type": "object",
                              "properties": {
                                "notes": {
                                  "description": "Audio power notes.",
                                  "type": "string",
                                  "maxLength": 2000
                                }
                              },
                              "additionalProperties": false
                            },
                            "lighting": {
                              "description": "Lighting power feed.",
                              "type": "object",
                              "properties": {
                                "notes": {
                                  "description": "Lighting power notes.",
                                  "type": "string",
                                  "maxLength": 2000
                                }
                              },
                              "additionalProperties": false
                            },
                            "shore": {
                              "description": "Shore power feed.",
                              "type": "object",
                              "properties": {
                                "notes": {
                                  "description": "Shore power notes.",
                                  "type": "string",
                                  "maxLength": 2000
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "rigging": {
                          "description": "Rigging and fly-system details.",
                          "type": "object",
                          "properties": {
                            "roofType": {
                              "description": "Venue roof or rigging system type.",
                              "type": "string",
                              "maxLength": 150
                            },
                            "maxPointLoadLbs": {
                              "description": "Maximum point load in pounds.",
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "flySystem": {
                              "description": "Fly system details.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "notes": {
                              "description": "Additional rigging notes.",
                              "type": "string",
                              "maxLength": 2000
                            }
                          },
                          "additionalProperties": false
                        },
                        "dimensions": {
                          "description": "Stage dimension details.",
                          "type": "object",
                          "properties": {
                            "width": {
                              "description": "Usable stage width.",
                              "type": "object",
                              "properties": {
                                "value": {
                                  "description": "Measured numeric value.",
                                  "type": "number"
                                },
                                "unit": {
                                  "description": "Measurement unit for the value.",
                                  "type": "string",
                                  "enum": [
                                    "ft",
                                    "m",
                                    "in",
                                    "cm"
                                  ]
                                },
                                "precision": {
                                  "description": "Number of decimal places represented by the measurement.",
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 4
                                }
                              },
                              "required": [
                                "value",
                                "unit"
                              ],
                              "additionalProperties": false
                            },
                            "depth": {
                              "description": "Usable stage depth.",
                              "type": "object",
                              "properties": {
                                "value": {
                                  "description": "Measured numeric value.",
                                  "type": "number"
                                },
                                "unit": {
                                  "description": "Measurement unit for the value.",
                                  "type": "string",
                                  "enum": [
                                    "ft",
                                    "m",
                                    "in",
                                    "cm"
                                  ]
                                },
                                "precision": {
                                  "description": "Number of decimal places represented by the measurement.",
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 4
                                }
                              },
                              "required": [
                                "value",
                                "unit"
                              ],
                              "additionalProperties": false
                            },
                            "height": {
                              "description": "Stage height.",
                              "type": "object",
                              "properties": {
                                "value": {
                                  "description": "Measured numeric value.",
                                  "type": "number"
                                },
                                "unit": {
                                  "description": "Measurement unit for the value.",
                                  "type": "string",
                                  "enum": [
                                    "ft",
                                    "m",
                                    "in",
                                    "cm"
                                  ]
                                },
                                "precision": {
                                  "description": "Number of decimal places represented by the measurement.",
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 4
                                }
                              },
                              "required": [
                                "value",
                                "unit"
                              ],
                              "additionalProperties": false
                            },
                            "trimHeight": {
                              "description": "Trim height above the stage.",
                              "type": "object",
                              "properties": {
                                "value": {
                                  "description": "Measured numeric value.",
                                  "type": "number"
                                },
                                "unit": {
                                  "description": "Measurement unit for the value.",
                                  "type": "string",
                                  "enum": [
                                    "ft",
                                    "m",
                                    "in",
                                    "cm"
                                  ]
                                },
                                "precision": {
                                  "description": "Number of decimal places represented by the measurement.",
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 4
                                }
                              },
                              "required": [
                                "value",
                                "unit"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "stageLayout": {
                          "description": "Stage layout details.",
                          "type": "object",
                          "properties": {
                            "wings": {
                              "description": "Stage wing space notes.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "orchestraPit": {
                              "description": "Orchestra pit details.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "barricade": {
                              "description": "Barricade setup details.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "fohPosition": {
                              "description": "Front-of-house position details.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "risers": {
                              "description": "Riser availability or layout notes.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "notes": {
                              "description": "Additional stage layout notes.",
                              "type": "string",
                              "maxLength": 2000
                            }
                          },
                          "additionalProperties": false
                        },
                        "climateControl": {
                          "description": "Climate control notes for the stage or venue.",
                          "type": "string",
                          "maxLength": 200
                        },
                        "houseLights": {
                          "description": "House light control notes.",
                          "type": "string",
                          "maxLength": 200
                        },
                        "notes": {
                          "description": "Additional production capability notes.",
                          "type": "string",
                          "maxLength": 1000
                        }
                      },
                      "additionalProperties": false
                    },
                    "equipment": {
                      "description": "Venue equipment details.",
                      "type": "object",
                      "properties": {
                        "audio": {
                          "description": "Audio equipment details.",
                          "type": "object",
                          "properties": {
                            "summary": {
                              "description": "Short equipment summary.",
                              "type": "string",
                              "maxLength": 2000
                            },
                            "inventory": {
                              "description": "Equipment inventory items.",
                              "default": [],
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 200
                              }
                            }
                          },
                          "required": [
                            "inventory"
                          ],
                          "additionalProperties": false
                        },
                        "lighting": {
                          "description": "Lighting equipment details.",
                          "type": "object",
                          "properties": {
                            "summary": {
                              "description": "Short equipment summary.",
                              "type": "string",
                              "maxLength": 2000
                            },
                            "inventory": {
                              "description": "Equipment inventory items.",
                              "default": [],
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 200
                              }
                            }
                          },
                          "required": [
                            "inventory"
                          ],
                          "additionalProperties": false
                        },
                        "video": {
                          "description": "Video equipment details.",
                          "type": "object",
                          "properties": {
                            "summary": {
                              "description": "Short equipment summary.",
                              "type": "string",
                              "maxLength": 2000
                            },
                            "inventory": {
                              "description": "Equipment inventory items.",
                              "default": [],
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 200
                              }
                            }
                          },
                          "required": [
                            "inventory"
                          ],
                          "additionalProperties": false
                        },
                        "staging": {
                          "description": "Staging equipment details.",
                          "type": "object",
                          "properties": {
                            "summary": {
                              "description": "Short equipment summary.",
                              "type": "string",
                              "maxLength": 2000
                            },
                            "inventory": {
                              "description": "Equipment inventory items.",
                              "default": [],
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 200
                              }
                            }
                          },
                          "required": [
                            "inventory"
                          ],
                          "additionalProperties": false
                        },
                        "backline": {
                          "description": "Backline equipment details.",
                          "type": "object",
                          "properties": {
                            "summary": {
                              "description": "Short equipment summary.",
                              "type": "string",
                              "maxLength": 2000
                            },
                            "inventory": {
                              "description": "Equipment inventory items.",
                              "default": [],
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 200
                              }
                            }
                          },
                          "required": [
                            "inventory"
                          ],
                          "additionalProperties": false
                        },
                        "other": {
                          "description": "Other venue equipment details.",
                          "type": "object",
                          "properties": {
                            "summary": {
                              "description": "Short equipment summary.",
                              "type": "string",
                              "maxLength": 2000
                            },
                            "inventory": {
                              "description": "Equipment inventory items.",
                              "default": [],
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 200
                              }
                            }
                          },
                          "required": [
                            "inventory"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    },
                    "facilities": {
                      "description": "Venue facility and hospitality details.",
                      "type": "object",
                      "properties": {
                        "dressingRooms": {
                          "description": "Dressing room names, counts, or notes.",
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "showers": {
                          "description": "Shower availability.",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string",
                              "maxLength": 300
                            }
                          ]
                        },
                        "laundry": {
                          "description": "Laundry availability or instructions.",
                          "type": "string",
                          "maxLength": 200
                        },
                        "offices": {
                          "description": "Office or production office availability.",
                          "type": "string",
                          "maxLength": 300
                        },
                        "runners": {
                          "description": "Runner availability or notes.",
                          "type": "string",
                          "maxLength": 200
                        },
                        "parking": {
                          "description": "General parking details.",
                          "type": "string",
                          "maxLength": 300
                        },
                        "busParking": {
                          "description": "Bus parking details.",
                          "type": "string",
                          "maxLength": 300
                        },
                        "truckParking": {
                          "description": "Truck parking details.",
                          "type": "string",
                          "maxLength": 300
                        },
                        "shorePower": {
                          "description": "Shore power availability or instructions.",
                          "type": "string",
                          "maxLength": 300
                        },
                        "towels": {
                          "description": "Towel availability or instructions.",
                          "type": "string",
                          "maxLength": 300
                        },
                        "merch": {
                          "description": "Merchandise area or settlement notes.",
                          "type": "string",
                          "maxLength": 300
                        },
                        "catering": {
                          "description": "Venue catering details.",
                          "type": "object",
                          "properties": {
                            "breakfast": {
                              "description": "Breakfast catering notes.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "lunch": {
                              "description": "Lunch catering notes.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "dinner": {
                              "description": "Dinner catering notes.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "location": {
                              "description": "Catering location.",
                              "type": "string",
                              "maxLength": 200
                            }
                          },
                          "additionalProperties": false
                        },
                        "wifi": {
                          "description": "Venue Wi-Fi details.",
                          "type": "object",
                          "properties": {
                            "ssid": {
                              "description": "Venue Wi-Fi network name.",
                              "type": "string",
                              "maxLength": 100
                            },
                            "password": {
                              "description": "Venue Wi-Fi password.",
                              "type": "string",
                              "maxLength": 100
                            },
                            "bandwidthMbps": {
                              "description": "Estimated Wi-Fi bandwidth in Mbps.",
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 100000
                            },
                            "notes": {
                              "description": "Additional Wi-Fi notes.",
                              "type": "string",
                              "maxLength": 200
                            }
                          },
                          "additionalProperties": false
                        },
                        "hospitalityNotes": {
                          "description": "Additional hospitality notes.",
                          "type": "string",
                          "maxLength": 1000
                        }
                      },
                      "additionalProperties": false
                    },
                    "logistics": {
                      "description": "Venue travel and local logistics details.",
                      "type": "object",
                      "properties": {
                        "directions": {
                          "description": "Venue directions or arrival instructions.",
                          "type": "string",
                          "maxLength": 2000
                        },
                        "nearestAirports": {
                          "description": "Nearby airports.",
                          "maxItems": 10,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "maxLength": 200
                          }
                        },
                        "areaNotes": {
                          "description": "Additional local area notes.",
                          "type": "string",
                          "maxLength": 1000
                        }
                      },
                      "additionalProperties": false
                    },
                    "crew": {
                      "description": "Venue crew and labor details.",
                      "type": "object",
                      "properties": {
                        "localUnion": {
                          "description": "Local union name or number.",
                          "type": "string",
                          "maxLength": 50
                        },
                        "penalties": {
                          "description": "Penalty, meal-break, or overtime notes.",
                          "type": "string",
                          "maxLength": 2000
                        },
                        "notes": {
                          "description": "Additional crew notes.",
                          "type": "string",
                          "maxLength": 2000
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                },
                "metadata": {
                  "description": "Venue metadata.",
                  "type": "object",
                  "properties": {
                    "status": {
                      "description": "Venue lifecycle status.",
                      "type": "string",
                      "enum": [
                        "active"
                      ]
                    },
                    "visibility": {
                      "description": "Venue visibility.",
                      "type": "string",
                      "enum": [
                        "org_only"
                      ]
                    },
                    "source": {
                      "description": "Venue source.",
                      "type": "string",
                      "enum": [
                        "org"
                      ]
                    },
                    "dataMode": {
                      "description": "Venue data mode.",
                      "type": "string",
                      "enum": [
                        "org_local"
                      ]
                    },
                    "orgNotes": {
                      "description": "Internal team notes imported from venue tech-pack workflows.",
                      "nullable": true,
                      "type": "string",
                      "maxLength": 2000
                    },
                    "createdAt": {
                      "description": "ISO 8601 timestamp when the venue was created.",
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                    },
                    "updatedAt": {
                      "description": "ISO 8601 timestamp when the venue was last updated.",
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                    }
                  },
                  "required": [
                    "status",
                    "visibility",
                    "source",
                    "dataMode",
                    "createdAt",
                    "updatedAt"
                  ],
                  "additionalProperties": false
                },
                "version": {
                  "description": "Current venue aggregate version.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "cursor": {
                  "description": "Latest event-ledger cursor projected into this venue record.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "officialName",
                "previousNames",
                "address",
                "contacts",
                "externalRefs",
                "tags",
                "id",
                "isDeleted",
                "metadata",
                "version",
                "cursor"
              ],
              "additionalProperties": false
            }
          },
          "page": {
            "type": "object",
            "properties": {
              "limit": {
                "description": "Maximum number of records returned in this page.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "nextCursor": {
                "description": "Cursor to pass as the next request's cursor query parameter, or null when there are no more results.",
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "limit",
              "nextCursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "nullable": true,
                "type": "number"
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "page",
          "meta"
        ],
        "additionalProperties": false
      },
      "VenueSearchResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "officialName": {
                  "description": "Official venue name.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "displayName": {
                  "description": "Preferred display name shown in RoadOps.",
                  "nullable": true,
                  "type": "string",
                  "maxLength": 200
                },
                "previousNames": {
                  "description": "Previous or alternate venue names.",
                  "default": [],
                  "type": "array",
                  "items": {
                    "type": "string",
                    "maxLength": 200
                  }
                },
                "address": {
                  "description": "Venue street address or complete location address.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 300
                },
                "geo": {
                  "description": "Venue geographic coordinates.",
                  "nullable": true,
                  "type": "object",
                  "properties": {
                    "latitude": {
                      "description": "Venue latitude in decimal degrees.",
                      "type": "number",
                      "minimum": -90,
                      "maximum": 90
                    },
                    "longitude": {
                      "description": "Venue longitude in decimal degrees.",
                      "type": "number",
                      "minimum": -180,
                      "maximum": 180
                    }
                  },
                  "required": [
                    "latitude",
                    "longitude"
                  ],
                  "additionalProperties": false
                },
                "timezone": {
                  "description": "IANA timezone for the venue location, such as America/New_York.",
                  "nullable": true
                },
                "primaryContact": {
                  "description": "Primary venue contact.",
                  "nullable": true,
                  "type": "object",
                  "properties": {
                    "name": {
                      "description": "Contact person's name.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200
                    },
                    "title": {
                      "description": "Contact person's role or job title.",
                      "type": "string",
                      "maxLength": 150
                    },
                    "phone": {
                      "description": "Contact phone number.",
                      "type": "string",
                      "maxLength": 50,
                      "pattern": "^[+0-9().\\-\\s]+$"
                    },
                    "email": {
                      "description": "Contact email address.",
                      "type": "string",
                      "maxLength": 200,
                      "format": "email",
                      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                    },
                    "notes": {
                      "description": "Short notes about this contact.",
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "additionalProperties": false
                },
                "contacts": {
                  "description": "Additional venue contacts.",
                  "default": [],
                  "maxItems": 50,
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "description": "Contact person's name.",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "title": {
                        "description": "Contact person's role or job title.",
                        "type": "string",
                        "maxLength": 150
                      },
                      "phone": {
                        "description": "Contact phone number.",
                        "type": "string",
                        "maxLength": 50,
                        "pattern": "^[+0-9().\\-\\s]+$"
                      },
                      "email": {
                        "description": "Contact email address.",
                        "type": "string",
                        "maxLength": 200,
                        "format": "email",
                        "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                      },
                      "notes": {
                        "description": "Short notes about this contact.",
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "required": [
                      "name"
                    ],
                    "additionalProperties": false
                  }
                },
                "phone": {
                  "description": "Main venue phone number.",
                  "nullable": true,
                  "type": "string",
                  "maxLength": 50,
                  "pattern": "^[+0-9().\\-\\s]+$"
                },
                "email": {
                  "description": "Main venue email address.",
                  "nullable": true,
                  "type": "string",
                  "maxLength": 200,
                  "format": "email",
                  "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                },
                "website": {
                  "description": "Venue website URL.",
                  "nullable": true,
                  "type": "string",
                  "maxLength": 300,
                  "format": "uri"
                },
                "externalRefs": {
                  "description": "External venue references.",
                  "default": [],
                  "maxItems": 200,
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "source": {
                        "description": "External system or reference source.",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                      },
                      "value": {
                        "description": "Identifier or label from the external source.",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "url": {
                        "description": "Optional URL for the external reference.",
                        "type": "string",
                        "maxLength": 300,
                        "format": "uri"
                      }
                    },
                    "required": [
                      "source",
                      "value"
                    ],
                    "additionalProperties": false
                  }
                },
                "tags": {
                  "description": "Venue labels used for organization.",
                  "default": [],
                  "maxItems": 50,
                  "type": "array",
                  "items": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 50
                  }
                },
                "primaryPhotoAttachmentId": {
                  "description": "Attachment ID for the venue primary photo.",
                  "nullable": true,
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "notes": {
                  "description": "General venue notes.",
                  "nullable": true,
                  "type": "string",
                  "maxLength": 2000
                },
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "orgId": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "isDeleted": {
                  "default": false,
                  "type": "boolean"
                },
                "capacity": {
                  "description": "Venue capacity.",
                  "nullable": true,
                  "type": "object",
                  "properties": {
                    "total": {
                      "description": "Total venue capacity.",
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "total"
                  ],
                  "additionalProperties": false
                },
                "capabilities": {
                  "description": "Venue capability details.",
                  "nullable": true,
                  "type": "object",
                  "properties": {
                    "production": {
                      "description": "Production capability details.",
                      "type": "object",
                      "properties": {
                        "access": {
                          "description": "Load-in and venue access details.",
                          "type": "object",
                          "properties": {
                            "description": {
                              "description": "General venue load-in description.",
                              "type": "string",
                              "maxLength": 2000
                            },
                            "dockCount": {
                              "description": "Number of loading docks.",
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 10
                            },
                            "shorePower": {
                              "description": "Shore power availability for buses or trucks.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "notes": {
                              "description": "Additional load-in or access notes.",
                              "type": "string",
                              "maxLength": 2000
                            }
                          },
                          "additionalProperties": false
                        },
                        "power": {
                          "description": "Production and shore power notes.",
                          "type": "object",
                          "properties": {
                            "show": {
                              "description": "Primary show power feed.",
                              "type": "object",
                              "properties": {
                                "notes": {
                                  "description": "Primary show power notes.",
                                  "type": "string",
                                  "maxLength": 2000
                                }
                              },
                              "additionalProperties": false
                            },
                            "audio": {
                              "description": "Audio power feed.",
                              "type": "object",
                              "properties": {
                                "notes": {
                                  "description": "Audio power notes.",
                                  "type": "string",
                                  "maxLength": 2000
                                }
                              },
                              "additionalProperties": false
                            },
                            "lighting": {
                              "description": "Lighting power feed.",
                              "type": "object",
                              "properties": {
                                "notes": {
                                  "description": "Lighting power notes.",
                                  "type": "string",
                                  "maxLength": 2000
                                }
                              },
                              "additionalProperties": false
                            },
                            "shore": {
                              "description": "Shore power feed.",
                              "type": "object",
                              "properties": {
                                "notes": {
                                  "description": "Shore power notes.",
                                  "type": "string",
                                  "maxLength": 2000
                                }
                              },
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "rigging": {
                          "description": "Rigging and fly-system details.",
                          "type": "object",
                          "properties": {
                            "roofType": {
                              "description": "Venue roof or rigging system type.",
                              "type": "string",
                              "maxLength": 150
                            },
                            "maxPointLoadLbs": {
                              "description": "Maximum point load in pounds.",
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "flySystem": {
                              "description": "Fly system details.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "notes": {
                              "description": "Additional rigging notes.",
                              "type": "string",
                              "maxLength": 2000
                            }
                          },
                          "additionalProperties": false
                        },
                        "dimensions": {
                          "description": "Stage dimension details.",
                          "type": "object",
                          "properties": {
                            "width": {
                              "description": "Usable stage width.",
                              "type": "object",
                              "properties": {
                                "value": {
                                  "description": "Measured numeric value.",
                                  "type": "number"
                                },
                                "unit": {
                                  "description": "Measurement unit for the value.",
                                  "type": "string",
                                  "enum": [
                                    "ft",
                                    "m",
                                    "in",
                                    "cm"
                                  ]
                                },
                                "precision": {
                                  "description": "Number of decimal places represented by the measurement.",
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 4
                                }
                              },
                              "required": [
                                "value",
                                "unit"
                              ],
                              "additionalProperties": false
                            },
                            "depth": {
                              "description": "Usable stage depth.",
                              "type": "object",
                              "properties": {
                                "value": {
                                  "description": "Measured numeric value.",
                                  "type": "number"
                                },
                                "unit": {
                                  "description": "Measurement unit for the value.",
                                  "type": "string",
                                  "enum": [
                                    "ft",
                                    "m",
                                    "in",
                                    "cm"
                                  ]
                                },
                                "precision": {
                                  "description": "Number of decimal places represented by the measurement.",
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 4
                                }
                              },
                              "required": [
                                "value",
                                "unit"
                              ],
                              "additionalProperties": false
                            },
                            "height": {
                              "description": "Stage height.",
                              "type": "object",
                              "properties": {
                                "value": {
                                  "description": "Measured numeric value.",
                                  "type": "number"
                                },
                                "unit": {
                                  "description": "Measurement unit for the value.",
                                  "type": "string",
                                  "enum": [
                                    "ft",
                                    "m",
                                    "in",
                                    "cm"
                                  ]
                                },
                                "precision": {
                                  "description": "Number of decimal places represented by the measurement.",
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 4
                                }
                              },
                              "required": [
                                "value",
                                "unit"
                              ],
                              "additionalProperties": false
                            },
                            "trimHeight": {
                              "description": "Trim height above the stage.",
                              "type": "object",
                              "properties": {
                                "value": {
                                  "description": "Measured numeric value.",
                                  "type": "number"
                                },
                                "unit": {
                                  "description": "Measurement unit for the value.",
                                  "type": "string",
                                  "enum": [
                                    "ft",
                                    "m",
                                    "in",
                                    "cm"
                                  ]
                                },
                                "precision": {
                                  "description": "Number of decimal places represented by the measurement.",
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 4
                                }
                              },
                              "required": [
                                "value",
                                "unit"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "additionalProperties": false
                        },
                        "stageLayout": {
                          "description": "Stage layout details.",
                          "type": "object",
                          "properties": {
                            "wings": {
                              "description": "Stage wing space notes.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "orchestraPit": {
                              "description": "Orchestra pit details.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "barricade": {
                              "description": "Barricade setup details.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "fohPosition": {
                              "description": "Front-of-house position details.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "risers": {
                              "description": "Riser availability or layout notes.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "notes": {
                              "description": "Additional stage layout notes.",
                              "type": "string",
                              "maxLength": 2000
                            }
                          },
                          "additionalProperties": false
                        },
                        "climateControl": {
                          "description": "Climate control notes for the stage or venue.",
                          "type": "string",
                          "maxLength": 200
                        },
                        "houseLights": {
                          "description": "House light control notes.",
                          "type": "string",
                          "maxLength": 200
                        },
                        "notes": {
                          "description": "Additional production capability notes.",
                          "type": "string",
                          "maxLength": 1000
                        }
                      },
                      "additionalProperties": false
                    },
                    "equipment": {
                      "description": "Venue equipment details.",
                      "type": "object",
                      "properties": {
                        "audio": {
                          "description": "Audio equipment details.",
                          "type": "object",
                          "properties": {
                            "summary": {
                              "description": "Short equipment summary.",
                              "type": "string",
                              "maxLength": 2000
                            },
                            "inventory": {
                              "description": "Equipment inventory items.",
                              "default": [],
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 200
                              }
                            }
                          },
                          "required": [
                            "inventory"
                          ],
                          "additionalProperties": false
                        },
                        "lighting": {
                          "description": "Lighting equipment details.",
                          "type": "object",
                          "properties": {
                            "summary": {
                              "description": "Short equipment summary.",
                              "type": "string",
                              "maxLength": 2000
                            },
                            "inventory": {
                              "description": "Equipment inventory items.",
                              "default": [],
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 200
                              }
                            }
                          },
                          "required": [
                            "inventory"
                          ],
                          "additionalProperties": false
                        },
                        "video": {
                          "description": "Video equipment details.",
                          "type": "object",
                          "properties": {
                            "summary": {
                              "description": "Short equipment summary.",
                              "type": "string",
                              "maxLength": 2000
                            },
                            "inventory": {
                              "description": "Equipment inventory items.",
                              "default": [],
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 200
                              }
                            }
                          },
                          "required": [
                            "inventory"
                          ],
                          "additionalProperties": false
                        },
                        "staging": {
                          "description": "Staging equipment details.",
                          "type": "object",
                          "properties": {
                            "summary": {
                              "description": "Short equipment summary.",
                              "type": "string",
                              "maxLength": 2000
                            },
                            "inventory": {
                              "description": "Equipment inventory items.",
                              "default": [],
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 200
                              }
                            }
                          },
                          "required": [
                            "inventory"
                          ],
                          "additionalProperties": false
                        },
                        "backline": {
                          "description": "Backline equipment details.",
                          "type": "object",
                          "properties": {
                            "summary": {
                              "description": "Short equipment summary.",
                              "type": "string",
                              "maxLength": 2000
                            },
                            "inventory": {
                              "description": "Equipment inventory items.",
                              "default": [],
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 200
                              }
                            }
                          },
                          "required": [
                            "inventory"
                          ],
                          "additionalProperties": false
                        },
                        "other": {
                          "description": "Other venue equipment details.",
                          "type": "object",
                          "properties": {
                            "summary": {
                              "description": "Short equipment summary.",
                              "type": "string",
                              "maxLength": 2000
                            },
                            "inventory": {
                              "description": "Equipment inventory items.",
                              "default": [],
                              "maxItems": 200,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "maxLength": 200
                              }
                            }
                          },
                          "required": [
                            "inventory"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "additionalProperties": false
                    },
                    "facilities": {
                      "description": "Venue facility and hospitality details.",
                      "type": "object",
                      "properties": {
                        "dressingRooms": {
                          "description": "Dressing room names, counts, or notes.",
                          "maxItems": 200,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "maxLength": 300
                          }
                        },
                        "showers": {
                          "description": "Shower availability.",
                          "anyOf": [
                            {
                              "type": "boolean"
                            },
                            {
                              "type": "string",
                              "maxLength": 300
                            }
                          ]
                        },
                        "laundry": {
                          "description": "Laundry availability or instructions.",
                          "type": "string",
                          "maxLength": 200
                        },
                        "offices": {
                          "description": "Office or production office availability.",
                          "type": "string",
                          "maxLength": 300
                        },
                        "runners": {
                          "description": "Runner availability or notes.",
                          "type": "string",
                          "maxLength": 200
                        },
                        "parking": {
                          "description": "General parking details.",
                          "type": "string",
                          "maxLength": 300
                        },
                        "busParking": {
                          "description": "Bus parking details.",
                          "type": "string",
                          "maxLength": 300
                        },
                        "truckParking": {
                          "description": "Truck parking details.",
                          "type": "string",
                          "maxLength": 300
                        },
                        "shorePower": {
                          "description": "Shore power availability or instructions.",
                          "type": "string",
                          "maxLength": 300
                        },
                        "towels": {
                          "description": "Towel availability or instructions.",
                          "type": "string",
                          "maxLength": 300
                        },
                        "merch": {
                          "description": "Merchandise area or settlement notes.",
                          "type": "string",
                          "maxLength": 300
                        },
                        "catering": {
                          "description": "Venue catering details.",
                          "type": "object",
                          "properties": {
                            "breakfast": {
                              "description": "Breakfast catering notes.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "lunch": {
                              "description": "Lunch catering notes.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "dinner": {
                              "description": "Dinner catering notes.",
                              "type": "string",
                              "maxLength": 200
                            },
                            "location": {
                              "description": "Catering location.",
                              "type": "string",
                              "maxLength": 200
                            }
                          },
                          "additionalProperties": false
                        },
                        "wifi": {
                          "description": "Venue Wi-Fi details.",
                          "type": "object",
                          "properties": {
                            "ssid": {
                              "description": "Venue Wi-Fi network name.",
                              "type": "string",
                              "maxLength": 100
                            },
                            "password": {
                              "description": "Venue Wi-Fi password.",
                              "type": "string",
                              "maxLength": 100
                            },
                            "bandwidthMbps": {
                              "description": "Estimated Wi-Fi bandwidth in Mbps.",
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 100000
                            },
                            "notes": {
                              "description": "Additional Wi-Fi notes.",
                              "type": "string",
                              "maxLength": 200
                            }
                          },
                          "additionalProperties": false
                        },
                        "hospitalityNotes": {
                          "description": "Additional hospitality notes.",
                          "type": "string",
                          "maxLength": 1000
                        }
                      },
                      "additionalProperties": false
                    },
                    "logistics": {
                      "description": "Venue travel and local logistics details.",
                      "type": "object",
                      "properties": {
                        "directions": {
                          "description": "Venue directions or arrival instructions.",
                          "type": "string",
                          "maxLength": 2000
                        },
                        "nearestAirports": {
                          "description": "Nearby airports.",
                          "maxItems": 10,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "maxLength": 200
                          }
                        },
                        "areaNotes": {
                          "description": "Additional local area notes.",
                          "type": "string",
                          "maxLength": 1000
                        }
                      },
                      "additionalProperties": false
                    },
                    "crew": {
                      "description": "Venue crew and labor details.",
                      "type": "object",
                      "properties": {
                        "localUnion": {
                          "description": "Local union name or number.",
                          "type": "string",
                          "maxLength": 50
                        },
                        "penalties": {
                          "description": "Penalty, meal-break, or overtime notes.",
                          "type": "string",
                          "maxLength": 2000
                        },
                        "notes": {
                          "description": "Additional crew notes.",
                          "type": "string",
                          "maxLength": 2000
                        }
                      },
                      "additionalProperties": false
                    }
                  },
                  "additionalProperties": false
                },
                "metadata": {
                  "description": "Venue metadata.",
                  "type": "object",
                  "properties": {
                    "status": {
                      "description": "Venue lifecycle status.",
                      "type": "string",
                      "enum": [
                        "active"
                      ]
                    },
                    "visibility": {
                      "description": "Venue visibility.",
                      "type": "string",
                      "enum": [
                        "org_only"
                      ]
                    },
                    "source": {
                      "description": "Venue source.",
                      "type": "string",
                      "enum": [
                        "org"
                      ]
                    },
                    "dataMode": {
                      "description": "Venue data mode.",
                      "type": "string",
                      "enum": [
                        "org_local"
                      ]
                    },
                    "orgNotes": {
                      "description": "Internal team notes imported from venue tech-pack workflows.",
                      "nullable": true,
                      "type": "string",
                      "maxLength": 2000
                    },
                    "createdAt": {
                      "description": "ISO 8601 timestamp when the venue was created.",
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                    },
                    "updatedAt": {
                      "description": "ISO 8601 timestamp when the venue was last updated.",
                      "type": "string",
                      "format": "date-time",
                      "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                    }
                  },
                  "required": [
                    "status",
                    "visibility",
                    "source",
                    "dataMode",
                    "createdAt",
                    "updatedAt"
                  ],
                  "additionalProperties": false
                },
                "version": {
                  "description": "Current venue aggregate version.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "cursor": {
                  "description": "Latest event-ledger cursor projected into this venue record.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "officialName",
                "previousNames",
                "address",
                "contacts",
                "externalRefs",
                "tags",
                "id",
                "isDeleted",
                "metadata",
                "version",
                "cursor"
              ],
              "additionalProperties": false
            }
          },
          "meta": {
            "type": "object",
            "properties": {
              "query": {
                "description": "Search query used for the local venue lookup.",
                "type": "string"
              },
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "nullable": true,
                "type": "number"
              }
            },
            "required": [
              "query",
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "additionalProperties": false
      },
      "GuestRequestCreateRequest": {
        "type": "object",
        "properties": {
          "guestFirstName": {
            "description": "Guest's first name.",
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "guestLastName": {
            "description": "Guest's last name.",
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "totalTickets": {
            "description": "Total number of tickets requested for the guest.",
            "type": "integer",
            "minimum": 0,
            "maximum": 10000
          },
          "status": {
            "default": "pending",
            "description": "Current approval status for the guest request.",
            "type": "string",
            "enum": [
              "pending",
              "approved",
              "denied"
            ]
          },
          "pickupLocation": {
            "default": "will_call",
            "description": "Where the guest should receive or pick up their tickets.",
            "type": "string",
            "enum": [
              "will_call",
              "in_hand",
              "other"
            ]
          },
          "attendeeContactEmail": {
            "description": "Optional email address for the guest or attendee contact.",
            "type": "string",
            "maxLength": 320,
            "format": "email",
            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
          },
          "notes": {
            "description": "Internal notes for this guest request.",
            "type": "string",
            "maxLength": 2000
          },
          "assignedSeats": {
            "default": [],
            "description": "Seat assignments attached after the guest request is fulfilled.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "description": "Assigned seat identifier.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "section": {
                  "description": "Venue seating section label.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 40
                },
                "row": {
                  "description": "Venue seating row label.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 40
                },
                "seat": {
                  "description": "Venue seating seat label.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 40
                },
                "ticketTypeId": {
                  "description": "Ticket type identifier associated with this assigned seat.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              },
              "required": [
                "id",
                "section",
                "row",
                "seat"
              ],
              "additionalProperties": false
            }
          },
          "id": {
            "description": "Optional caller-supplied guest request ID. RoadOps generates one when omitted.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "requestedByUserId": {
            "description": "Optional member ID to create the request on behalf of.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "requestedByName": {
            "description": "Optional display name for the requested-by member.",
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "ticketType": {
            "description": "Optional ticket type requested for the guest.",
            "type": "object",
            "properties": {
              "ticketTypeId": {
                "description": "Ticket type identifier requested for this guest.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              }
            },
            "required": [
              "ticketTypeId"
            ],
            "additionalProperties": false
          },
          "passes": {
            "default": [],
            "description": "Pass type requests associated with this guest request.",
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "passTypeId": {
                  "description": "Pass type identifier requested for this guest.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "quantity": {
                  "description": "Number of passes requested for this pass type.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 10000
                }
              },
              "required": [
                "passTypeId",
                "quantity"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "guestFirstName",
          "guestLastName",
          "totalTickets",
          "status",
          "pickupLocation",
          "assignedSeats",
          "passes"
        ],
        "additionalProperties": false
      },
      "GuestRequestUpdateRequest": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "description": "Optional aggregate version guard.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "updates": {
            "type": "object",
            "properties": {
              "guestFirstName": {
                "description": "Updated guest first name.",
                "type": "string",
                "minLength": 1,
                "maxLength": 100
              },
              "guestLastName": {
                "description": "Updated guest last name.",
                "type": "string",
                "minLength": 1,
                "maxLength": 100
              },
              "totalTickets": {
                "description": "Updated requested ticket count.",
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "pickupLocation": {
                "description": "Updated pickup location.",
                "type": "string",
                "enum": [
                  "will_call",
                  "in_hand",
                  "other"
                ]
              },
              "attendeeContactEmail": {
                "description": "Updated attendee email, or null to clear it.",
                "anyOf": [
                  {
                    "description": "Optional email address for the guest or attendee contact.",
                    "type": "string",
                    "maxLength": 320,
                    "format": "email",
                    "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              },
              "notes": {
                "description": "Updated request notes, or null to clear them.",
                "anyOf": [
                  {
                    "description": "Internal notes for this guest request.",
                    "type": "string",
                    "maxLength": 2000
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              },
              "ticketType": {
                "description": "Updated ticket type, or null to clear it.",
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "ticketTypeId": {
                        "description": "Ticket type identifier requested for this guest.",
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      }
                    },
                    "required": [
                      "ticketTypeId"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              },
              "passes": {
                "description": "Updated pass requests.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "passTypeId": {
                      "description": "Pass type identifier requested for this guest.",
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    "quantity": {
                      "description": "Number of passes requested for this pass type.",
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 10000
                    }
                  },
                  "required": [
                    "passTypeId",
                    "quantity"
                  ],
                  "additionalProperties": false
                }
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "updates"
        ],
        "additionalProperties": false
      },
      "GuestRequestResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "dayId": {
                "description": "Day identifier that owns the event for this guest request.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "eventId": {
                "description": "Event identifier that owns this guest request.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "guestFirstName": {
                "description": "Guest's first name.",
                "type": "string",
                "minLength": 1,
                "maxLength": 100
              },
              "guestLastName": {
                "description": "Guest's last name.",
                "type": "string",
                "minLength": 1,
                "maxLength": 100
              },
              "totalTickets": {
                "description": "Total number of tickets requested for the guest.",
                "type": "integer",
                "minimum": 0,
                "maximum": 10000
              },
              "status": {
                "default": "pending",
                "description": "Current approval status for the guest request.",
                "type": "string",
                "enum": [
                  "pending",
                  "approved",
                  "denied"
                ]
              },
              "pickupLocation": {
                "default": "will_call",
                "description": "Where the guest should receive or pick up their tickets.",
                "type": "string",
                "enum": [
                  "will_call",
                  "in_hand",
                  "other"
                ]
              },
              "attendeeContactEmail": {
                "description": "Optional email address for the guest or attendee contact.",
                "type": "string",
                "maxLength": 320,
                "format": "email",
                "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
              },
              "notes": {
                "description": "Internal notes for this guest request.",
                "type": "string",
                "maxLength": 2000
              },
              "ticketType": {
                "description": "Optional ticket type snapshot requested for the guest.",
                "type": "object",
                "properties": {
                  "ticketTypeId": {
                    "description": "Ticket type identifier requested for this guest.",
                    "type": "string",
                    "format": "uuid",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  },
                  "nameAtRequest": {
                    "description": "Ticket type display name captured when the guest request was created or updated.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  },
                  "abbreviationAtRequest": {
                    "description": "Short ticket type label captured when the guest request was created or updated.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 20
                  }
                },
                "required": [
                  "ticketTypeId",
                  "nameAtRequest",
                  "abbreviationAtRequest"
                ],
                "additionalProperties": false
              },
              "passes": {
                "default": [],
                "description": "Pass type requests associated with this guest request.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "passTypeId": {
                      "description": "Pass type identifier requested for this guest.",
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    "nameAtRequest": {
                      "description": "Pass type display name captured when the guest request was created or updated.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 120
                    },
                    "abbreviationAtRequest": {
                      "description": "Short pass type label captured when the guest request was created or updated.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    },
                    "quantity": {
                      "description": "Number of passes requested for this pass type.",
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 10000
                    }
                  },
                  "required": [
                    "passTypeId",
                    "nameAtRequest",
                    "abbreviationAtRequest",
                    "quantity"
                  ],
                  "additionalProperties": false
                }
              },
              "assignedSeats": {
                "default": [],
                "description": "Seat assignments attached after the guest request is fulfilled.",
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "description": "Assigned seat identifier.",
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    "section": {
                      "description": "Venue seating section label.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "row": {
                      "description": "Venue seating row label.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "seat": {
                      "description": "Venue seating seat label.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 40
                    },
                    "ticketTypeId": {
                      "description": "Ticket type identifier associated with this assigned seat.",
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  },
                  "required": [
                    "id",
                    "section",
                    "row",
                    "seat"
                  ],
                  "additionalProperties": false
                }
              },
              "id": {
                "description": "Guest request identifier.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "orgId": {
                "description": "Team identifier that owns this guest request.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "isDeleted": {
                "default": false,
                "description": "Whether the guest request has been deleted.",
                "type": "boolean"
              },
              "createdBy": {
                "description": "User identifier that created the guest request.",
                "anyOf": [
                  {
                    "type": "string",
                    "format": "uuid",
                    "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                  },
                  {
                    "type": "string",
                    "minLength": 1
                  }
                ]
              },
              "createdByName": {
                "description": "Display name captured for the creator.",
                "type": "string",
                "maxLength": 200
              },
              "createdAt": {
                "description": "ISO 8601 timestamp when the request was created.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "updatedAt": {
                "description": "ISO 8601 timestamp when the request was last updated.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "version": {
                "description": "Current guest request aggregate version.",
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "cursor": {
                "description": "Latest event-ledger cursor projected into this guest request record.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "dayId",
              "eventId",
              "guestFirstName",
              "guestLastName",
              "totalTickets",
              "status",
              "pickupLocation",
              "passes",
              "assignedSeats",
              "id",
              "orgId",
              "isDeleted",
              "createdBy",
              "createdAt",
              "version",
              "cursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "additionalProperties": false
      },
      "GuestRequestListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "dayId": {
                  "description": "Day identifier that owns the event for this guest request.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "eventId": {
                  "description": "Event identifier that owns this guest request.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "guestFirstName": {
                  "description": "Guest's first name.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "guestLastName": {
                  "description": "Guest's last name.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 100
                },
                "totalTickets": {
                  "description": "Total number of tickets requested for the guest.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 10000
                },
                "status": {
                  "default": "pending",
                  "description": "Current approval status for the guest request.",
                  "type": "string",
                  "enum": [
                    "pending",
                    "approved",
                    "denied"
                  ]
                },
                "pickupLocation": {
                  "default": "will_call",
                  "description": "Where the guest should receive or pick up their tickets.",
                  "type": "string",
                  "enum": [
                    "will_call",
                    "in_hand",
                    "other"
                  ]
                },
                "attendeeContactEmail": {
                  "description": "Optional email address for the guest or attendee contact.",
                  "type": "string",
                  "maxLength": 320,
                  "format": "email",
                  "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                },
                "notes": {
                  "description": "Internal notes for this guest request.",
                  "type": "string",
                  "maxLength": 2000
                },
                "ticketType": {
                  "description": "Optional ticket type snapshot requested for the guest.",
                  "type": "object",
                  "properties": {
                    "ticketTypeId": {
                      "description": "Ticket type identifier requested for this guest.",
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    "nameAtRequest": {
                      "description": "Ticket type display name captured when the guest request was created or updated.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 120
                    },
                    "abbreviationAtRequest": {
                      "description": "Short ticket type label captured when the guest request was created or updated.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 20
                    }
                  },
                  "required": [
                    "ticketTypeId",
                    "nameAtRequest",
                    "abbreviationAtRequest"
                  ],
                  "additionalProperties": false
                },
                "passes": {
                  "default": [],
                  "description": "Pass type requests associated with this guest request.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "passTypeId": {
                        "description": "Pass type identifier requested for this guest.",
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      },
                      "nameAtRequest": {
                        "description": "Pass type display name captured when the guest request was created or updated.",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 120
                      },
                      "abbreviationAtRequest": {
                        "description": "Short pass type label captured when the guest request was created or updated.",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 20
                      },
                      "quantity": {
                        "description": "Number of passes requested for this pass type.",
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 10000
                      }
                    },
                    "required": [
                      "passTypeId",
                      "nameAtRequest",
                      "abbreviationAtRequest",
                      "quantity"
                    ],
                    "additionalProperties": false
                  }
                },
                "assignedSeats": {
                  "default": [],
                  "description": "Seat assignments attached after the guest request is fulfilled.",
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "description": "Assigned seat identifier.",
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      },
                      "section": {
                        "description": "Venue seating section label.",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 40
                      },
                      "row": {
                        "description": "Venue seating row label.",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 40
                      },
                      "seat": {
                        "description": "Venue seating seat label.",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 40
                      },
                      "ticketTypeId": {
                        "description": "Ticket type identifier associated with this assigned seat.",
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      }
                    },
                    "required": [
                      "id",
                      "section",
                      "row",
                      "seat"
                    ],
                    "additionalProperties": false
                  }
                },
                "id": {
                  "description": "Guest request identifier.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "orgId": {
                  "description": "Team identifier that owns this guest request.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "isDeleted": {
                  "default": false,
                  "description": "Whether the guest request has been deleted.",
                  "type": "boolean"
                },
                "createdBy": {
                  "description": "User identifier that created the guest request.",
                  "anyOf": [
                    {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    {
                      "type": "string",
                      "minLength": 1
                    }
                  ]
                },
                "createdByName": {
                  "description": "Display name captured for the creator.",
                  "type": "string",
                  "maxLength": 200
                },
                "createdAt": {
                  "description": "ISO 8601 timestamp when the request was created.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "updatedAt": {
                  "description": "ISO 8601 timestamp when the request was last updated.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "version": {
                  "description": "Current guest request aggregate version.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "cursor": {
                  "description": "Latest event-ledger cursor projected into this guest request record.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "dayId",
                "eventId",
                "guestFirstName",
                "guestLastName",
                "totalTickets",
                "status",
                "pickupLocation",
                "passes",
                "assignedSeats",
                "id",
                "orgId",
                "isDeleted",
                "createdBy",
                "createdAt",
                "version",
                "cursor"
              ],
              "additionalProperties": false
            }
          },
          "page": {
            "type": "object",
            "properties": {
              "limit": {
                "description": "Maximum number of records returned in this page.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "nextCursor": {
                "description": "Cursor to pass as the next request's cursor query parameter, or null when there are no more results.",
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "limit",
              "nextCursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "nullable": true,
                "type": "number"
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "page",
          "meta"
        ],
        "additionalProperties": false
      },
      "SetListCreateRequest": {
        "type": "object",
        "properties": {
          "title": {
            "description": "Set list title.",
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "visibility": {
            "description": "Optional visibility rules for this set list.",
            "type": "object",
            "properties": {
              "groupIds": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              },
              "userIds": {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              }
            },
            "additionalProperties": false
          },
          "items": {
            "description": "Ordered set list entries. Each entry uses type \"libraryItem\" or type \"break\" to determine its shape.",
            "maxItems": 200,
            "type": "array",
            "items": {
              "oneOf": [
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "description": "Set list entry identifier.",
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    "type": {
                      "description": "Use \"libraryItem\" for an entry backed by a reusable set list item.",
                      "type": "string",
                      "enum": [
                        "libraryItem"
                      ]
                    },
                    "setListItemId": {
                      "description": "Reusable set list item identifier.",
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    "title": {
                      "description": "Optional per-set override title. When omitted, RoadOps uses the library item title.",
                      "type": "string",
                      "maxLength": 200
                    },
                    "durationSeconds": {
                      "description": "Optional per-set duration override in seconds. When omitted, RoadOps uses the library item duration.",
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 86400
                    },
                    "printTitle": {
                      "description": "Optional per-set print title override.",
                      "type": "string",
                      "maxLength": 200
                    },
                    "notes": {
                      "description": "Optional notes for this set list entry.",
                      "type": "string",
                      "maxLength": 2000
                    }
                  },
                  "required": [
                    "id",
                    "type",
                    "setListItemId"
                  ],
                  "additionalProperties": false
                },
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "description": "Set list entry identifier.",
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    "type": {
                      "description": "Use \"break\" for an intermission, pause, or other timed break in the set list.",
                      "type": "string",
                      "enum": [
                        "break"
                      ]
                    },
                    "title": {
                      "description": "Break label shown in the set list.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200
                    },
                    "durationSeconds": {
                      "description": "Break duration in seconds.",
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 86400
                    }
                  },
                  "required": [
                    "id",
                    "type",
                    "title",
                    "durationSeconds"
                  ],
                  "additionalProperties": false
                }
              ]
            }
          },
          "id": {
            "description": "Optional caller-supplied set list ID. RoadOps generates one when omitted.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "title",
          "items"
        ],
        "additionalProperties": false
      },
      "SetListUpdateRequest": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "description": "Optional aggregate version guard.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "updates": {
            "description": "Set list fields to update.",
            "type": "object",
            "properties": {
              "title": {
                "description": "Set list title.",
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "items": {
                "description": "Ordered set list entries. Each entry uses type \"libraryItem\" or type \"break\" to determine its shape.",
                "maxItems": 200,
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "description": "Set list entry identifier.",
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "type": {
                          "description": "Use \"libraryItem\" for an entry backed by a reusable set list item.",
                          "type": "string",
                          "enum": [
                            "libraryItem"
                          ]
                        },
                        "setListItemId": {
                          "description": "Reusable set list item identifier.",
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "title": {
                          "description": "Optional per-set override title. When omitted, RoadOps uses the library item title.",
                          "type": "string",
                          "maxLength": 200
                        },
                        "durationSeconds": {
                          "description": "Optional per-set duration override in seconds. When omitted, RoadOps uses the library item duration.",
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 86400
                        },
                        "printTitle": {
                          "description": "Optional per-set print title override.",
                          "type": "string",
                          "maxLength": 200
                        },
                        "notes": {
                          "description": "Optional notes for this set list entry.",
                          "type": "string",
                          "maxLength": 2000
                        }
                      },
                      "required": [
                        "id",
                        "type",
                        "setListItemId"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "description": "Set list entry identifier.",
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "type": {
                          "description": "Use \"break\" for an intermission, pause, or other timed break in the set list.",
                          "type": "string",
                          "enum": [
                            "break"
                          ]
                        },
                        "title": {
                          "description": "Break label shown in the set list.",
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "durationSeconds": {
                          "description": "Break duration in seconds.",
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 86400
                        }
                      },
                      "required": [
                        "id",
                        "type",
                        "title",
                        "durationSeconds"
                      ],
                      "additionalProperties": false
                    }
                  ]
                }
              },
              "visibility": {
                "description": "Updated visibility rules, or null to clear them.",
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "groupIds": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        }
                      },
                      "userIds": {
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "updates"
        ],
        "additionalProperties": false
      },
      "SetListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "dayId": {
                "description": "Day identifier that owns the event for this set list.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "eventId": {
                "description": "Event identifier that owns this set list.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "title": {
                "description": "Set list title.",
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "visibility": {
                "description": "Optional visibility rules for the set list.",
                "type": "object",
                "properties": {
                  "groupIds": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  },
                  "userIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  }
                },
                "additionalProperties": false
              },
              "items": {
                "description": "Ordered set list entries. Each entry uses type \"libraryItem\" or type \"break\" to determine its shape.",
                "maxItems": 200,
                "type": "array",
                "items": {
                  "oneOf": [
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "description": "Set list entry identifier.",
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "type": {
                          "description": "Use \"libraryItem\" for an entry backed by a reusable set list item.",
                          "type": "string",
                          "enum": [
                            "libraryItem"
                          ]
                        },
                        "setListItemId": {
                          "description": "Reusable set list item identifier.",
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "title": {
                          "description": "Optional per-set override title. When omitted, RoadOps uses the library item title.",
                          "type": "string",
                          "maxLength": 200
                        },
                        "durationSeconds": {
                          "description": "Optional per-set duration override in seconds. When omitted, RoadOps uses the library item duration.",
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 86400
                        },
                        "printTitle": {
                          "description": "Optional per-set print title override.",
                          "type": "string",
                          "maxLength": 200
                        },
                        "notes": {
                          "description": "Optional notes for this set list entry.",
                          "type": "string",
                          "maxLength": 2000
                        }
                      },
                      "required": [
                        "id",
                        "type",
                        "setListItemId"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "properties": {
                        "id": {
                          "description": "Set list entry identifier.",
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        },
                        "type": {
                          "description": "Use \"break\" for an intermission, pause, or other timed break in the set list.",
                          "type": "string",
                          "enum": [
                            "break"
                          ]
                        },
                        "title": {
                          "description": "Break label shown in the set list.",
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 200
                        },
                        "durationSeconds": {
                          "description": "Break duration in seconds.",
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 86400
                        }
                      },
                      "required": [
                        "id",
                        "type",
                        "title",
                        "durationSeconds"
                      ],
                      "additionalProperties": false
                    }
                  ]
                }
              },
              "id": {
                "description": "Set list identifier.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "orgId": {
                "description": "Team identifier that owns this set list.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "isDeleted": {
                "default": false,
                "description": "Whether the set list has been deleted.",
                "type": "boolean"
              },
              "version": {
                "description": "Current set list aggregate version.",
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "createdAt": {
                "description": "ISO 8601 timestamp when the set list was created.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "createdBy": {
                "description": "User identifier that created this set list.",
                "type": "string"
              },
              "updatedAt": {
                "description": "ISO 8601 timestamp when the set list was last updated.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "updatedBy": {
                "description": "User identifier that last updated this set list.",
                "type": "string"
              },
              "cursor": {
                "description": "Latest event-ledger cursor projected into this set list record.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "dayId",
              "eventId",
              "title",
              "items",
              "id",
              "orgId",
              "isDeleted",
              "version",
              "createdAt",
              "createdBy",
              "updatedAt",
              "updatedBy",
              "cursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "additionalProperties": false
      },
      "SetListListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "dayId": {
                  "description": "Day identifier that owns the event for this set list.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "eventId": {
                  "description": "Event identifier that owns this set list.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "title": {
                  "description": "Set list title.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "visibility": {
                  "description": "Optional visibility rules for the set list.",
                  "type": "object",
                  "properties": {
                    "groupIds": {
                      "maxItems": 50,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      }
                    },
                    "userIds": {
                      "maxItems": 200,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "items": {
                  "description": "Ordered set list entries. Each entry uses type \"libraryItem\" or type \"break\" to determine its shape.",
                  "maxItems": 200,
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "description": "Set list entry identifier.",
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                          },
                          "type": {
                            "description": "Use \"libraryItem\" for an entry backed by a reusable set list item.",
                            "type": "string",
                            "enum": [
                              "libraryItem"
                            ]
                          },
                          "setListItemId": {
                            "description": "Reusable set list item identifier.",
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                          },
                          "title": {
                            "description": "Optional per-set override title. When omitted, RoadOps uses the library item title.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "durationSeconds": {
                            "description": "Optional per-set duration override in seconds. When omitted, RoadOps uses the library item duration.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 86400
                          },
                          "printTitle": {
                            "description": "Optional per-set print title override.",
                            "type": "string",
                            "maxLength": 200
                          },
                          "notes": {
                            "description": "Optional notes for this set list entry.",
                            "type": "string",
                            "maxLength": 2000
                          }
                        },
                        "required": [
                          "id",
                          "type",
                          "setListItemId"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "id": {
                            "description": "Set list entry identifier.",
                            "type": "string",
                            "format": "uuid",
                            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                          },
                          "type": {
                            "description": "Use \"break\" for an intermission, pause, or other timed break in the set list.",
                            "type": "string",
                            "enum": [
                              "break"
                            ]
                          },
                          "title": {
                            "description": "Break label shown in the set list.",
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "durationSeconds": {
                            "description": "Break duration in seconds.",
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 86400
                          }
                        },
                        "required": [
                          "id",
                          "type",
                          "title",
                          "durationSeconds"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                },
                "id": {
                  "description": "Set list identifier.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "orgId": {
                  "description": "Team identifier that owns this set list.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "isDeleted": {
                  "default": false,
                  "description": "Whether the set list has been deleted.",
                  "type": "boolean"
                },
                "version": {
                  "description": "Current set list aggregate version.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "createdAt": {
                  "description": "ISO 8601 timestamp when the set list was created.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "createdBy": {
                  "description": "User identifier that created this set list.",
                  "type": "string"
                },
                "updatedAt": {
                  "description": "ISO 8601 timestamp when the set list was last updated.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "updatedBy": {
                  "description": "User identifier that last updated this set list.",
                  "type": "string"
                },
                "cursor": {
                  "description": "Latest event-ledger cursor projected into this set list record.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "dayId",
                "eventId",
                "title",
                "items",
                "id",
                "orgId",
                "isDeleted",
                "version",
                "createdAt",
                "createdBy",
                "updatedAt",
                "updatedBy",
                "cursor"
              ],
              "additionalProperties": false
            }
          },
          "page": {
            "type": "object",
            "properties": {
              "limit": {
                "description": "Maximum number of records returned in this page.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "nextCursor": {
                "description": "Cursor to pass as the next request's cursor query parameter, or null when there are no more results.",
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "limit",
              "nextCursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "nullable": true,
                "type": "number"
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "page",
          "meta"
        ],
        "additionalProperties": false
      },
      "SetListItemCreateRequest": {
        "type": "object",
        "properties": {
          "title": {
            "description": "Reusable set list item title.",
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "durationSeconds": {
            "description": "Default duration in seconds for this reusable set list item.",
            "type": "integer",
            "minimum": 0,
            "maximum": 86400
          },
          "printTitle": {
            "description": "Optional title to use on printed set list output.",
            "type": "string",
            "maxLength": 200
          },
          "notes": {
            "description": "Optional notes for the set list item.",
            "type": "string",
            "maxLength": 2000
          },
          "id": {
            "description": "Optional caller-supplied set list item ID. RoadOps generates one when omitted.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "title",
          "durationSeconds"
        ],
        "additionalProperties": false
      },
      "SetListItemUpdateRequest": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "description": "Optional aggregate version guard.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "updates": {
            "description": "Set list library item fields to update.",
            "type": "object",
            "properties": {
              "title": {
                "description": "Reusable set list item title.",
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "durationSeconds": {
                "description": "Default duration in seconds for this reusable set list item.",
                "type": "integer",
                "minimum": 0,
                "maximum": 86400
              },
              "printTitle": {
                "description": "Optional title to use on printed set list output.",
                "type": "string",
                "maxLength": 200
              },
              "notes": {
                "description": "Optional notes for the set list item.",
                "type": "string",
                "maxLength": 2000
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "updates"
        ],
        "additionalProperties": false
      },
      "SetListItemLifecycleRequest": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "description": "Optional aggregate version guard.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "timestamp": {
            "description": "Optional ISO 8601 timestamp to use for the lifecycle transition.",
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          }
        },
        "additionalProperties": false
      },
      "SetListItemResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "title": {
                "description": "Reusable set list item title.",
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "durationSeconds": {
                "description": "Default duration in seconds for this reusable set list item.",
                "type": "integer",
                "minimum": 0,
                "maximum": 86400
              },
              "printTitle": {
                "description": "Optional title to use on printed set list output.",
                "type": "string",
                "maxLength": 200
              },
              "notes": {
                "description": "Optional notes for the set list item.",
                "type": "string",
                "maxLength": 2000
              },
              "id": {
                "description": "Set list item identifier.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "orgId": {
                "description": "Team identifier that owns this reusable set list item.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "isRetired": {
                "default": false,
                "description": "Whether this reusable item is hidden from active use.",
                "type": "boolean"
              },
              "retiredAt": {
                "description": "ISO 8601 timestamp when the item was retired.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "retiredBy": {
                "description": "User identifier that retired this item.",
                "type": "string"
              },
              "isDeleted": {
                "default": false,
                "description": "Whether this reusable item has been deleted.",
                "type": "boolean"
              },
              "version": {
                "description": "Current set list item aggregate version.",
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "createdAt": {
                "description": "ISO 8601 timestamp when the item was created.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "createdBy": {
                "description": "User identifier that created this item.",
                "type": "string"
              },
              "updatedAt": {
                "description": "ISO 8601 timestamp when the item was last updated.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "updatedBy": {
                "description": "User identifier that last updated this item.",
                "type": "string"
              },
              "cursor": {
                "description": "Latest event-ledger cursor projected into this set list item record.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "title",
              "durationSeconds",
              "id",
              "orgId",
              "isRetired",
              "isDeleted",
              "version",
              "createdAt",
              "createdBy",
              "updatedAt",
              "updatedBy",
              "cursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "additionalProperties": false
      },
      "SetListItemListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "title": {
                  "description": "Reusable set list item title.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "durationSeconds": {
                  "description": "Default duration in seconds for this reusable set list item.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 86400
                },
                "printTitle": {
                  "description": "Optional title to use on printed set list output.",
                  "type": "string",
                  "maxLength": 200
                },
                "notes": {
                  "description": "Optional notes for the set list item.",
                  "type": "string",
                  "maxLength": 2000
                },
                "id": {
                  "description": "Set list item identifier.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "orgId": {
                  "description": "Team identifier that owns this reusable set list item.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "isRetired": {
                  "default": false,
                  "description": "Whether this reusable item is hidden from active use.",
                  "type": "boolean"
                },
                "retiredAt": {
                  "description": "ISO 8601 timestamp when the item was retired.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "retiredBy": {
                  "description": "User identifier that retired this item.",
                  "type": "string"
                },
                "isDeleted": {
                  "default": false,
                  "description": "Whether this reusable item has been deleted.",
                  "type": "boolean"
                },
                "version": {
                  "description": "Current set list item aggregate version.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "createdAt": {
                  "description": "ISO 8601 timestamp when the item was created.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "createdBy": {
                  "description": "User identifier that created this item.",
                  "type": "string"
                },
                "updatedAt": {
                  "description": "ISO 8601 timestamp when the item was last updated.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "updatedBy": {
                  "description": "User identifier that last updated this item.",
                  "type": "string"
                },
                "cursor": {
                  "description": "Latest event-ledger cursor projected into this set list item record.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "title",
                "durationSeconds",
                "id",
                "orgId",
                "isRetired",
                "isDeleted",
                "version",
                "createdAt",
                "createdBy",
                "updatedAt",
                "updatedBy",
                "cursor"
              ],
              "additionalProperties": false
            }
          },
          "page": {
            "type": "object",
            "properties": {
              "limit": {
                "description": "Maximum number of records returned in this page.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "nextCursor": {
                "description": "Cursor to pass as the next request's cursor query parameter, or null when there are no more results.",
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "limit",
              "nextCursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "nullable": true,
                "type": "number"
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "page",
          "meta"
        ],
        "additionalProperties": false
      },
      "LodgingCreateRequest": {
        "type": "object",
        "properties": {
          "name": {
            "description": "Lodging record display name.",
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "label": {
            "nullable": true,
            "description": "Optional lodging label displayed above the lodging name.",
            "type": "string",
            "maxLength": 100
          },
          "sortOrder": {
            "nullable": true,
            "description": "Optional numeric sort order for ordering lodging records.",
            "type": "integer",
            "minimum": 0,
            "maximum": 1000000
          },
          "confirmationNumber": {
            "description": "Hotel confirmation number.",
            "type": "string",
            "maxLength": 60
          },
          "location": {
            "description": "Hotel or lodging location details.",
            "type": "object",
            "properties": {
              "name": {
                "description": "Hotel or lodging location display name.",
                "type": "string",
                "maxLength": 200
              },
              "address": {
                "description": "Street address or human-readable lodging location address.",
                "type": "string",
                "minLength": 1,
                "maxLength": 300
              },
              "placeId": {
                "description": "Google Places ID when available.",
                "type": "string",
                "maxLength": 255
              },
              "latitude": {
                "description": "Optional lodging latitude in decimal degrees.",
                "type": "number",
                "minimum": -90,
                "maximum": 90
              },
              "longitude": {
                "description": "Optional lodging longitude in decimal degrees.",
                "type": "number",
                "minimum": -180,
                "maximum": 180
              },
              "timezone": {
                "description": "IANA timezone identifier for the lodging location, such as America/Chicago. RoadOps uses this timezone to display check-in and check-out UTC timestamps in local time."
              }
            },
            "required": [
              "address"
            ],
            "additionalProperties": false
          },
          "checkInTime": {
            "description": "ISO 8601 UTC timestamp for the lodging event. Send the timestamp in UTC, typically ending in Z; RoadOps uses location.timezone to display the corresponding local time in the app.",
            "type": "string"
          },
          "checkOutTime": {
            "description": "ISO 8601 UTC timestamp for the lodging event. Send the timestamp in UTC, typically ending in Z; RoadOps uses location.timezone to display the corresponding local time in the app.",
            "type": "string"
          },
          "contact": {
            "description": "Primary lodging contact.",
            "type": "object",
            "properties": {
              "name": {
                "description": "Contact person's name.",
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "title": {
                "description": "Contact person's role or job title.",
                "type": "string",
                "maxLength": 150
              },
              "phone": {
                "description": "Contact phone number.",
                "type": "string",
                "maxLength": 50,
                "pattern": "^[+0-9().\\-\\s]+$"
              },
              "email": {
                "description": "Contact email address.",
                "type": "string",
                "maxLength": 200,
                "format": "email",
                "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
              },
              "notes": {
                "description": "Short notes about this contact.",
                "type": "string",
                "maxLength": 300
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          },
          "contacts": {
            "description": "Additional lodging contacts.",
            "default": [],
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "description": "Contact person's name.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "title": {
                  "description": "Contact person's role or job title.",
                  "type": "string",
                  "maxLength": 150
                },
                "phone": {
                  "description": "Contact phone number.",
                  "type": "string",
                  "maxLength": 50,
                  "pattern": "^[+0-9().\\-\\s]+$"
                },
                "email": {
                  "description": "Contact email address.",
                  "type": "string",
                  "maxLength": 200,
                  "format": "email",
                  "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                },
                "notes": {
                  "description": "Short notes about this contact.",
                  "type": "string",
                  "maxLength": 300
                }
              },
              "required": [
                "name"
              ],
              "additionalProperties": false
            }
          },
          "roomCount": {
            "description": "Expected number of rooms reserved for this lodging block.",
            "type": "integer",
            "minimum": 0,
            "maximum": 2000
          },
          "rooms": {
            "description": "Rooming-list entries associated with this lodging record.",
            "default": [],
            "maxItems": 500,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "description": "Stable room identifier.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "roomType": {
                  "description": "Room type or rooming-list label, such as King, Double Queen, or Bus room.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 150
                },
                "roomNumber": {
                  "description": "Assigned room number, when known.",
                  "type": "string",
                  "maxLength": 50
                },
                "bagTag": {
                  "description": "Bag tag or luggage label associated with this room.",
                  "type": "string",
                  "maxLength": 100
                },
                "confirmationNumber": {
                  "description": "Room-specific confirmation number, when different from the lodging record.",
                  "type": "string",
                  "maxLength": 60
                },
                "checkInDate": {
                  "description": "Room-specific check-in date in YYYY-MM-DD format, in the lodging timezone.",
                  "type": "string"
                },
                "eta": {
                  "description": "Estimated room arrival time in HH:mm 24-hour local time.",
                  "type": "string",
                  "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
                },
                "checkOutDate": {
                  "description": "Room-specific check-out date in YYYY-MM-DD format, in the lodging timezone.",
                  "type": "string"
                },
                "etd": {
                  "description": "Estimated room departure time in HH:mm 24-hour local time.",
                  "type": "string",
                  "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
                },
                "occupants": {
                  "description": "Names or notes identifying the people assigned to this room.",
                  "type": "string",
                  "maxLength": 1000
                },
                "notes": {
                  "description": "Room-specific notes.",
                  "type": "string",
                  "maxLength": 500
                }
              },
              "required": [
                "id",
                "roomType"
              ],
              "additionalProperties": false
            }
          },
          "notes": {
            "description": "General lodging notes.",
            "type": "string",
            "maxLength": 2000
          },
          "sourceMetadata": {
            "description": "Optional integration metadata retained with the lodging record.",
            "type": "object",
            "additionalProperties": {}
          },
          "visibility": {
            "description": "Optional visibility rules for the lodging record.",
            "type": "object",
            "properties": {
              "groupIds": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              },
              "userIds": {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              }
            },
            "additionalProperties": false
          },
          "id": {
            "description": "Optional caller-supplied lodging ID. RoadOps generates one when omitted.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "name",
          "location",
          "checkInTime",
          "checkOutTime",
          "contacts",
          "rooms"
        ],
        "additionalProperties": false
      },
      "LodgingUpdateRequest": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "description": "Optional aggregate version guard.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "updates": {
            "description": "Lodging fields to update.",
            "type": "object",
            "properties": {
              "name": {
                "description": "Updated lodging display name.",
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "label": {
                "description": "Updated lodging label displayed above the lodging name, or null to clear it.",
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 100
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              },
              "sortOrder": {
                "description": "Updated numeric sort order for ordering lodging records, or null to clear it.",
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 1000000
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              },
              "confirmationNumber": {
                "description": "Updated hotel confirmation number, or null to clear it.",
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 60
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              },
              "location": {
                "description": "Updated hotel or lodging location details.",
                "type": "object",
                "properties": {
                  "name": {
                    "description": "Hotel or lodging location display name.",
                    "type": "string",
                    "maxLength": 200
                  },
                  "address": {
                    "description": "Street address or human-readable lodging location address.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "placeId": {
                    "description": "Google Places ID when available.",
                    "type": "string",
                    "maxLength": 255
                  },
                  "latitude": {
                    "description": "Optional lodging latitude in decimal degrees.",
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90
                  },
                  "longitude": {
                    "description": "Optional lodging longitude in decimal degrees.",
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180
                  },
                  "timezone": {
                    "description": "IANA timezone identifier for the lodging location, such as America/Chicago. RoadOps uses this timezone to display check-in and check-out UTC timestamps in local time."
                  }
                },
                "required": [
                  "address"
                ],
                "additionalProperties": false
              },
              "checkInTime": {
                "description": "Updated ISO 8601 UTC check-in timestamp. Send the timestamp in UTC, typically ending in Z; RoadOps uses location.timezone to display the corresponding local time in the app.",
                "type": "string"
              },
              "checkOutTime": {
                "description": "Updated ISO 8601 UTC check-out timestamp. Send the timestamp in UTC, typically ending in Z; RoadOps uses location.timezone to display the corresponding local time in the app.",
                "type": "string"
              },
              "contact": {
                "description": "Updated primary lodging contact, or null to clear it.",
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "name": {
                        "description": "Contact person's name.",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "title": {
                        "description": "Contact person's role or job title.",
                        "type": "string",
                        "maxLength": 150
                      },
                      "phone": {
                        "description": "Contact phone number.",
                        "type": "string",
                        "maxLength": 50,
                        "pattern": "^[+0-9().\\-\\s]+$"
                      },
                      "email": {
                        "description": "Contact email address.",
                        "type": "string",
                        "maxLength": 200,
                        "format": "email",
                        "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                      },
                      "notes": {
                        "description": "Short notes about this contact.",
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "required": [
                      "name"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              },
              "contacts": {
                "description": "Updated additional lodging contacts.",
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "description": "Contact person's name.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200
                    },
                    "title": {
                      "description": "Contact person's role or job title.",
                      "type": "string",
                      "maxLength": 150
                    },
                    "phone": {
                      "description": "Contact phone number.",
                      "type": "string",
                      "maxLength": 50,
                      "pattern": "^[+0-9().\\-\\s]+$"
                    },
                    "email": {
                      "description": "Contact email address.",
                      "type": "string",
                      "maxLength": 200,
                      "format": "email",
                      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                    },
                    "notes": {
                      "description": "Short notes about this contact.",
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "additionalProperties": false
                }
              },
              "roomCount": {
                "description": "Updated expected room count, or null to clear it.",
                "anyOf": [
                  {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 2000
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              },
              "rooms": {
                "description": "Updated rooming-list entries.",
                "maxItems": 500,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "description": "Stable room identifier.",
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    "roomType": {
                      "description": "Room type or rooming-list label, such as King, Double Queen, or Bus room.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 150
                    },
                    "roomNumber": {
                      "description": "Assigned room number, when known.",
                      "type": "string",
                      "maxLength": 50
                    },
                    "bagTag": {
                      "description": "Bag tag or luggage label associated with this room.",
                      "type": "string",
                      "maxLength": 100
                    },
                    "confirmationNumber": {
                      "description": "Room-specific confirmation number, when different from the lodging record.",
                      "type": "string",
                      "maxLength": 60
                    },
                    "checkInDate": {
                      "description": "Room-specific check-in date in YYYY-MM-DD format, in the lodging timezone.",
                      "type": "string"
                    },
                    "eta": {
                      "description": "Estimated room arrival time in HH:mm 24-hour local time.",
                      "type": "string",
                      "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
                    },
                    "checkOutDate": {
                      "description": "Room-specific check-out date in YYYY-MM-DD format, in the lodging timezone.",
                      "type": "string"
                    },
                    "etd": {
                      "description": "Estimated room departure time in HH:mm 24-hour local time.",
                      "type": "string",
                      "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
                    },
                    "occupants": {
                      "description": "Names or notes identifying the people assigned to this room.",
                      "type": "string",
                      "maxLength": 1000
                    },
                    "notes": {
                      "description": "Room-specific notes.",
                      "type": "string",
                      "maxLength": 500
                    }
                  },
                  "required": [
                    "id",
                    "roomType"
                  ],
                  "additionalProperties": false
                }
              },
              "notes": {
                "description": "Updated lodging notes, or null to clear them.",
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 2000
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              },
              "visibility": {
                "description": "Updated visibility rules, or null to clear them.",
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "groupIds": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        }
                      },
                      "userIds": {
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "updates"
        ],
        "additionalProperties": false
      },
      "LodgingResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "name": {
                "description": "Lodging record display name.",
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "label": {
                "nullable": true,
                "description": "Optional lodging label displayed above the lodging name.",
                "type": "string",
                "maxLength": 100
              },
              "sortOrder": {
                "nullable": true,
                "description": "Optional numeric sort order for ordering lodging records.",
                "type": "integer",
                "minimum": 0,
                "maximum": 1000000
              },
              "confirmationNumber": {
                "description": "Hotel confirmation number.",
                "type": "string",
                "maxLength": 60
              },
              "location": {
                "description": "Hotel or lodging location details.",
                "type": "object",
                "properties": {
                  "name": {
                    "description": "Hotel or lodging location display name.",
                    "type": "string",
                    "maxLength": 200
                  },
                  "address": {
                    "description": "Street address or human-readable lodging location address.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 300
                  },
                  "placeId": {
                    "description": "Google Places ID when available.",
                    "type": "string",
                    "maxLength": 255
                  },
                  "latitude": {
                    "description": "Optional lodging latitude in decimal degrees.",
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90
                  },
                  "longitude": {
                    "description": "Optional lodging longitude in decimal degrees.",
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180
                  },
                  "timezone": {
                    "description": "IANA timezone identifier for the lodging location, such as America/Chicago. RoadOps uses this timezone to display check-in and check-out UTC timestamps in local time."
                  }
                },
                "required": [
                  "address"
                ],
                "additionalProperties": false
              },
              "checkInTime": {
                "description": "ISO 8601 UTC timestamp for the lodging event. Send the timestamp in UTC, typically ending in Z; RoadOps uses location.timezone to display the corresponding local time in the app.",
                "type": "string"
              },
              "checkOutTime": {
                "description": "ISO 8601 UTC timestamp for the lodging event. Send the timestamp in UTC, typically ending in Z; RoadOps uses location.timezone to display the corresponding local time in the app.",
                "type": "string"
              },
              "contact": {
                "description": "Primary lodging contact.",
                "type": "object",
                "properties": {
                  "name": {
                    "description": "Contact person's name.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "title": {
                    "description": "Contact person's role or job title.",
                    "type": "string",
                    "maxLength": 150
                  },
                  "phone": {
                    "description": "Contact phone number.",
                    "type": "string",
                    "maxLength": 50,
                    "pattern": "^[+0-9().\\-\\s]+$"
                  },
                  "email": {
                    "description": "Contact email address.",
                    "type": "string",
                    "maxLength": 200,
                    "format": "email",
                    "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                  },
                  "notes": {
                    "description": "Short notes about this contact.",
                    "type": "string",
                    "maxLength": 300
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              },
              "contacts": {
                "description": "Additional lodging contacts.",
                "default": [],
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "description": "Contact person's name.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200
                    },
                    "title": {
                      "description": "Contact person's role or job title.",
                      "type": "string",
                      "maxLength": 150
                    },
                    "phone": {
                      "description": "Contact phone number.",
                      "type": "string",
                      "maxLength": 50,
                      "pattern": "^[+0-9().\\-\\s]+$"
                    },
                    "email": {
                      "description": "Contact email address.",
                      "type": "string",
                      "maxLength": 200,
                      "format": "email",
                      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                    },
                    "notes": {
                      "description": "Short notes about this contact.",
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "additionalProperties": false
                }
              },
              "roomCount": {
                "description": "Expected number of rooms reserved for this lodging block.",
                "type": "integer",
                "minimum": 0,
                "maximum": 2000
              },
              "rooms": {
                "description": "Rooming-list entries associated with this lodging record.",
                "default": [],
                "maxItems": 500,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "description": "Stable room identifier.",
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    },
                    "roomType": {
                      "description": "Room type or rooming-list label, such as King, Double Queen, or Bus room.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 150
                    },
                    "roomNumber": {
                      "description": "Assigned room number, when known.",
                      "type": "string",
                      "maxLength": 50
                    },
                    "bagTag": {
                      "description": "Bag tag or luggage label associated with this room.",
                      "type": "string",
                      "maxLength": 100
                    },
                    "confirmationNumber": {
                      "description": "Room-specific confirmation number, when different from the lodging record.",
                      "type": "string",
                      "maxLength": 60
                    },
                    "checkInDate": {
                      "description": "Room-specific check-in date in YYYY-MM-DD format, in the lodging timezone.",
                      "type": "string"
                    },
                    "eta": {
                      "description": "Estimated room arrival time in HH:mm 24-hour local time.",
                      "type": "string",
                      "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
                    },
                    "checkOutDate": {
                      "description": "Room-specific check-out date in YYYY-MM-DD format, in the lodging timezone.",
                      "type": "string"
                    },
                    "etd": {
                      "description": "Estimated room departure time in HH:mm 24-hour local time.",
                      "type": "string",
                      "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
                    },
                    "occupants": {
                      "description": "Names or notes identifying the people assigned to this room.",
                      "type": "string",
                      "maxLength": 1000
                    },
                    "notes": {
                      "description": "Room-specific notes.",
                      "type": "string",
                      "maxLength": 500
                    }
                  },
                  "required": [
                    "id",
                    "roomType"
                  ],
                  "additionalProperties": false
                }
              },
              "notes": {
                "description": "General lodging notes.",
                "type": "string",
                "maxLength": 2000
              },
              "sourceMetadata": {
                "description": "Optional integration metadata retained with the lodging record.",
                "type": "object",
                "additionalProperties": {}
              },
              "visibility": {
                "description": "Optional visibility rules for the lodging record.",
                "type": "object",
                "properties": {
                  "groupIds": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  },
                  "userIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  }
                },
                "additionalProperties": false
              },
              "id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "orgId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "isDeleted": {
                "default": false,
                "type": "boolean"
              },
              "version": {
                "description": "Current lodging aggregate version.",
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "createdAt": {
                "description": "ISO 8601 timestamp when the lodging record was created.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "createdBy": {
                "description": "User identifier that created the lodging record.",
                "type": "string"
              },
              "updatedAt": {
                "description": "ISO 8601 timestamp when the lodging record was last updated.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "updatedBy": {
                "description": "User identifier that last updated the lodging record.",
                "type": "string"
              },
              "cursor": {
                "description": "Latest event-ledger cursor projected into this lodging record.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "name",
              "location",
              "checkInTime",
              "checkOutTime",
              "contacts",
              "rooms",
              "id",
              "orgId",
              "isDeleted",
              "version",
              "createdAt",
              "createdBy",
              "cursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "additionalProperties": false
      },
      "LodgingListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "description": "Lodging record display name.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "label": {
                  "nullable": true,
                  "description": "Optional lodging label displayed above the lodging name.",
                  "type": "string",
                  "maxLength": 100
                },
                "sortOrder": {
                  "nullable": true,
                  "description": "Optional numeric sort order for ordering lodging records.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 1000000
                },
                "confirmationNumber": {
                  "description": "Hotel confirmation number.",
                  "type": "string",
                  "maxLength": 60
                },
                "location": {
                  "description": "Hotel or lodging location details.",
                  "type": "object",
                  "properties": {
                    "name": {
                      "description": "Hotel or lodging location display name.",
                      "type": "string",
                      "maxLength": 200
                    },
                    "address": {
                      "description": "Street address or human-readable lodging location address.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 300
                    },
                    "placeId": {
                      "description": "Google Places ID when available.",
                      "type": "string",
                      "maxLength": 255
                    },
                    "latitude": {
                      "description": "Optional lodging latitude in decimal degrees.",
                      "type": "number",
                      "minimum": -90,
                      "maximum": 90
                    },
                    "longitude": {
                      "description": "Optional lodging longitude in decimal degrees.",
                      "type": "number",
                      "minimum": -180,
                      "maximum": 180
                    },
                    "timezone": {
                      "description": "IANA timezone identifier for the lodging location, such as America/Chicago. RoadOps uses this timezone to display check-in and check-out UTC timestamps in local time."
                    }
                  },
                  "required": [
                    "address"
                  ],
                  "additionalProperties": false
                },
                "checkInTime": {
                  "description": "ISO 8601 UTC timestamp for the lodging event. Send the timestamp in UTC, typically ending in Z; RoadOps uses location.timezone to display the corresponding local time in the app.",
                  "type": "string"
                },
                "checkOutTime": {
                  "description": "ISO 8601 UTC timestamp for the lodging event. Send the timestamp in UTC, typically ending in Z; RoadOps uses location.timezone to display the corresponding local time in the app.",
                  "type": "string"
                },
                "contact": {
                  "description": "Primary lodging contact.",
                  "type": "object",
                  "properties": {
                    "name": {
                      "description": "Contact person's name.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200
                    },
                    "title": {
                      "description": "Contact person's role or job title.",
                      "type": "string",
                      "maxLength": 150
                    },
                    "phone": {
                      "description": "Contact phone number.",
                      "type": "string",
                      "maxLength": 50,
                      "pattern": "^[+0-9().\\-\\s]+$"
                    },
                    "email": {
                      "description": "Contact email address.",
                      "type": "string",
                      "maxLength": 200,
                      "format": "email",
                      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                    },
                    "notes": {
                      "description": "Short notes about this contact.",
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "additionalProperties": false
                },
                "contacts": {
                  "description": "Additional lodging contacts.",
                  "default": [],
                  "maxItems": 50,
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "description": "Contact person's name.",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "title": {
                        "description": "Contact person's role or job title.",
                        "type": "string",
                        "maxLength": 150
                      },
                      "phone": {
                        "description": "Contact phone number.",
                        "type": "string",
                        "maxLength": 50,
                        "pattern": "^[+0-9().\\-\\s]+$"
                      },
                      "email": {
                        "description": "Contact email address.",
                        "type": "string",
                        "maxLength": 200,
                        "format": "email",
                        "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                      },
                      "notes": {
                        "description": "Short notes about this contact.",
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "required": [
                      "name"
                    ],
                    "additionalProperties": false
                  }
                },
                "roomCount": {
                  "description": "Expected number of rooms reserved for this lodging block.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 2000
                },
                "rooms": {
                  "description": "Rooming-list entries associated with this lodging record.",
                  "default": [],
                  "maxItems": 500,
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "description": "Stable room identifier.",
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      },
                      "roomType": {
                        "description": "Room type or rooming-list label, such as King, Double Queen, or Bus room.",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 150
                      },
                      "roomNumber": {
                        "description": "Assigned room number, when known.",
                        "type": "string",
                        "maxLength": 50
                      },
                      "bagTag": {
                        "description": "Bag tag or luggage label associated with this room.",
                        "type": "string",
                        "maxLength": 100
                      },
                      "confirmationNumber": {
                        "description": "Room-specific confirmation number, when different from the lodging record.",
                        "type": "string",
                        "maxLength": 60
                      },
                      "checkInDate": {
                        "description": "Room-specific check-in date in YYYY-MM-DD format, in the lodging timezone.",
                        "type": "string"
                      },
                      "eta": {
                        "description": "Estimated room arrival time in HH:mm 24-hour local time.",
                        "type": "string",
                        "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
                      },
                      "checkOutDate": {
                        "description": "Room-specific check-out date in YYYY-MM-DD format, in the lodging timezone.",
                        "type": "string"
                      },
                      "etd": {
                        "description": "Estimated room departure time in HH:mm 24-hour local time.",
                        "type": "string",
                        "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
                      },
                      "occupants": {
                        "description": "Names or notes identifying the people assigned to this room.",
                        "type": "string",
                        "maxLength": 1000
                      },
                      "notes": {
                        "description": "Room-specific notes.",
                        "type": "string",
                        "maxLength": 500
                      }
                    },
                    "required": [
                      "id",
                      "roomType"
                    ],
                    "additionalProperties": false
                  }
                },
                "notes": {
                  "description": "General lodging notes.",
                  "type": "string",
                  "maxLength": 2000
                },
                "sourceMetadata": {
                  "description": "Optional integration metadata retained with the lodging record.",
                  "type": "object",
                  "additionalProperties": {}
                },
                "visibility": {
                  "description": "Optional visibility rules for the lodging record.",
                  "type": "object",
                  "properties": {
                    "groupIds": {
                      "maxItems": 50,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      }
                    },
                    "userIds": {
                      "maxItems": 200,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "orgId": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "isDeleted": {
                  "default": false,
                  "type": "boolean"
                },
                "version": {
                  "description": "Current lodging aggregate version.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "createdAt": {
                  "description": "ISO 8601 timestamp when the lodging record was created.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "createdBy": {
                  "description": "User identifier that created the lodging record.",
                  "type": "string"
                },
                "updatedAt": {
                  "description": "ISO 8601 timestamp when the lodging record was last updated.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "updatedBy": {
                  "description": "User identifier that last updated the lodging record.",
                  "type": "string"
                },
                "cursor": {
                  "description": "Latest event-ledger cursor projected into this lodging record.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "name",
                "location",
                "checkInTime",
                "checkOutTime",
                "contacts",
                "rooms",
                "id",
                "orgId",
                "isDeleted",
                "version",
                "createdAt",
                "createdBy",
                "cursor"
              ],
              "additionalProperties": false
            }
          },
          "page": {
            "type": "object",
            "properties": {
              "limit": {
                "description": "Maximum number of records returned in this page.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "nextCursor": {
                "description": "Cursor to pass as the next request's cursor query parameter, or null when there are no more results.",
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "limit",
              "nextCursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "nullable": true,
                "type": "number"
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "page",
          "meta"
        ],
        "additionalProperties": false
      },
      "RentalCarCreateRequest": {
        "type": "object",
        "properties": {
          "companyName": {
            "description": "Rental car company name.",
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "label": {
            "description": "Optional short display label.",
            "type": "string",
            "maxLength": 100
          },
          "confirmationNumber": {
            "description": "Rental booking confirmation number.",
            "type": "string",
            "maxLength": 60
          },
          "status": {
            "default": "confirmed",
            "description": "Rental confirmation state.",
            "type": "string",
            "enum": [
              "confirmed",
              "unconfirmed"
            ]
          },
          "priority": {
            "default": "normal",
            "description": "Rental display priority.",
            "type": "string",
            "enum": [
              "normal",
              "high"
            ]
          },
          "pickupDate": {
            "description": "Local rental date in YYYY-MM-DD format at the corresponding rental location.",
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "pickupTime": {
            "description": "Local rental time in HH:mm 24-hour format at the corresponding rental location.",
            "type": "string",
            "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
          },
          "pickupLocation": {
            "description": "Rental pickup or drop-off location, including its required timezone.",
            "type": "object",
            "properties": {
              "label": {
                "description": "Human-readable place label.",
                "type": "string",
                "maxLength": 200
              },
              "address": {
                "description": "Street address or venue address.",
                "type": "string",
                "maxLength": 300
              },
              "placeId": {
                "description": "Google Places ID when available.",
                "type": "string",
                "maxLength": 255
              },
              "latitude": {
                "description": "Latitude in decimal degrees.",
                "type": "number",
                "minimum": -90,
                "maximum": 90
              },
              "longitude": {
                "description": "Longitude in decimal degrees.",
                "type": "number",
                "minimum": -180,
                "maximum": 180
              },
              "timezone": {
                "description": "IANA timezone used to interpret and display the rental pickup or drop-off time."
              }
            },
            "required": [
              "timezone"
            ],
            "additionalProperties": false
          },
          "dropoffDate": {
            "description": "Local rental date in YYYY-MM-DD format at the corresponding rental location.",
            "type": "string",
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
          },
          "dropoffTime": {
            "description": "Local rental time in HH:mm 24-hour format at the corresponding rental location.",
            "type": "string",
            "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
          },
          "dropoffLocation": {
            "description": "Rental pickup or drop-off location, including its required timezone.",
            "type": "object",
            "properties": {
              "label": {
                "description": "Human-readable place label.",
                "type": "string",
                "maxLength": 200
              },
              "address": {
                "description": "Street address or venue address.",
                "type": "string",
                "maxLength": 300
              },
              "placeId": {
                "description": "Google Places ID when available.",
                "type": "string",
                "maxLength": 255
              },
              "latitude": {
                "description": "Latitude in decimal degrees.",
                "type": "number",
                "minimum": -90,
                "maximum": 90
              },
              "longitude": {
                "description": "Longitude in decimal degrees.",
                "type": "number",
                "minimum": -180,
                "maximum": 180
              },
              "timezone": {
                "description": "IANA timezone used to interpret and display the rental pickup or drop-off time."
              }
            },
            "required": [
              "timezone"
            ],
            "additionalProperties": false
          },
          "primaryDriver": {
            "description": "Primary renter or driver.",
            "type": "object",
            "properties": {
              "name": {
                "description": "Contact person's name.",
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "title": {
                "description": "Contact person's role or job title.",
                "type": "string",
                "maxLength": 150
              },
              "phone": {
                "description": "Contact phone number.",
                "type": "string",
                "maxLength": 50,
                "pattern": "^[+0-9().\\-\\s]+$"
              },
              "email": {
                "description": "Contact email address.",
                "type": "string",
                "maxLength": 200,
                "format": "email",
                "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
              },
              "notes": {
                "description": "Short notes about this contact.",
                "type": "string",
                "maxLength": 300
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          },
          "vehicleClass": {
            "description": "Reserved vehicle class.",
            "type": "string",
            "maxLength": 150
          },
          "vehicleDescription": {
            "description": "Assigned vehicle or other vehicle details.",
            "type": "string",
            "maxLength": 200
          },
          "contacts": {
            "default": [],
            "description": "Rental company contacts.",
            "maxItems": 50,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "description": "Contact person's name.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "title": {
                  "description": "Contact person's role or job title.",
                  "type": "string",
                  "maxLength": 150
                },
                "phone": {
                  "description": "Contact phone number.",
                  "type": "string",
                  "maxLength": 50,
                  "pattern": "^[+0-9().\\-\\s]+$"
                },
                "email": {
                  "description": "Contact email address.",
                  "type": "string",
                  "maxLength": 200,
                  "format": "email",
                  "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                },
                "notes": {
                  "description": "Short notes about this contact.",
                  "type": "string",
                  "maxLength": 300
                }
              },
              "required": [
                "name"
              ],
              "additionalProperties": false
            }
          },
          "notes": {
            "description": "General rental notes.",
            "type": "string",
            "maxLength": 2000
          },
          "sourceMetadata": {
            "description": "Integration or import metadata retained with the rental.",
            "type": "object",
            "additionalProperties": {}
          },
          "visibility": {
            "description": "Optional rental visibility rules.",
            "type": "object",
            "properties": {
              "groupIds": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              },
              "userIds": {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              }
            },
            "additionalProperties": false
          },
          "id": {
            "description": "Optional caller-supplied rental car ID. RoadOps generates one when omitted.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "companyName",
          "status",
          "priority",
          "pickupDate",
          "pickupTime",
          "pickupLocation",
          "dropoffDate",
          "dropoffTime",
          "dropoffLocation",
          "contacts"
        ],
        "additionalProperties": false
      },
      "RentalCarUpdateRequest": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "description": "Optional aggregate version guard.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "updates": {
            "description": "Rental car fields to update.",
            "type": "object",
            "properties": {
              "companyName": {
                "description": "Rental car company name.",
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "label": {
                "description": "Optional short display label.",
                "type": "string",
                "maxLength": 100
              },
              "confirmationNumber": {
                "description": "Rental booking confirmation number.",
                "type": "string",
                "maxLength": 60
              },
              "status": {
                "description": "Rental confirmation state.",
                "type": "string",
                "enum": [
                  "confirmed",
                  "unconfirmed"
                ]
              },
              "priority": {
                "description": "Rental display priority.",
                "type": "string",
                "enum": [
                  "normal",
                  "high"
                ]
              },
              "pickupDate": {
                "description": "Local rental date in YYYY-MM-DD format at the corresponding rental location.",
                "type": "string",
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
              },
              "pickupTime": {
                "description": "Local rental time in HH:mm 24-hour format at the corresponding rental location.",
                "type": "string",
                "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
              },
              "pickupLocation": {
                "description": "Rental pickup or drop-off location, including its required timezone.",
                "type": "object",
                "properties": {
                  "label": {
                    "description": "Human-readable place label.",
                    "type": "string",
                    "maxLength": 200
                  },
                  "address": {
                    "description": "Street address or venue address.",
                    "type": "string",
                    "maxLength": 300
                  },
                  "placeId": {
                    "description": "Google Places ID when available.",
                    "type": "string",
                    "maxLength": 255
                  },
                  "latitude": {
                    "description": "Latitude in decimal degrees.",
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90
                  },
                  "longitude": {
                    "description": "Longitude in decimal degrees.",
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180
                  },
                  "timezone": {
                    "description": "IANA timezone used to interpret and display the rental pickup or drop-off time."
                  }
                },
                "required": [
                  "timezone"
                ],
                "additionalProperties": false
              },
              "dropoffDate": {
                "description": "Local rental date in YYYY-MM-DD format at the corresponding rental location.",
                "type": "string",
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
              },
              "dropoffTime": {
                "description": "Local rental time in HH:mm 24-hour format at the corresponding rental location.",
                "type": "string",
                "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
              },
              "dropoffLocation": {
                "description": "Rental pickup or drop-off location, including its required timezone.",
                "type": "object",
                "properties": {
                  "label": {
                    "description": "Human-readable place label.",
                    "type": "string",
                    "maxLength": 200
                  },
                  "address": {
                    "description": "Street address or venue address.",
                    "type": "string",
                    "maxLength": 300
                  },
                  "placeId": {
                    "description": "Google Places ID when available.",
                    "type": "string",
                    "maxLength": 255
                  },
                  "latitude": {
                    "description": "Latitude in decimal degrees.",
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90
                  },
                  "longitude": {
                    "description": "Longitude in decimal degrees.",
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180
                  },
                  "timezone": {
                    "description": "IANA timezone used to interpret and display the rental pickup or drop-off time."
                  }
                },
                "required": [
                  "timezone"
                ],
                "additionalProperties": false
              },
              "primaryDriver": {
                "description": "Updated primary renter or driver, or null to clear the existing primary driver.",
                "nullable": true,
                "type": "object",
                "properties": {
                  "name": {
                    "description": "Contact person's name.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "title": {
                    "description": "Contact person's role or job title.",
                    "type": "string",
                    "maxLength": 150
                  },
                  "phone": {
                    "description": "Contact phone number.",
                    "type": "string",
                    "maxLength": 50,
                    "pattern": "^[+0-9().\\-\\s]+$"
                  },
                  "email": {
                    "description": "Contact email address.",
                    "type": "string",
                    "maxLength": 200,
                    "format": "email",
                    "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                  },
                  "notes": {
                    "description": "Short notes about this contact.",
                    "type": "string",
                    "maxLength": 300
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              },
              "vehicleClass": {
                "description": "Reserved vehicle class.",
                "type": "string",
                "maxLength": 150
              },
              "vehicleDescription": {
                "description": "Assigned vehicle or other vehicle details.",
                "type": "string",
                "maxLength": 200
              },
              "contacts": {
                "description": "Rental company contacts.",
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "description": "Contact person's name.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200
                    },
                    "title": {
                      "description": "Contact person's role or job title.",
                      "type": "string",
                      "maxLength": 150
                    },
                    "phone": {
                      "description": "Contact phone number.",
                      "type": "string",
                      "maxLength": 50,
                      "pattern": "^[+0-9().\\-\\s]+$"
                    },
                    "email": {
                      "description": "Contact email address.",
                      "type": "string",
                      "maxLength": 200,
                      "format": "email",
                      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                    },
                    "notes": {
                      "description": "Short notes about this contact.",
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "additionalProperties": false
                }
              },
              "notes": {
                "description": "General rental notes.",
                "type": "string",
                "maxLength": 2000
              },
              "sourceMetadata": {
                "description": "Integration or import metadata retained with the rental.",
                "type": "object",
                "additionalProperties": {}
              },
              "visibility": {
                "description": "Optional rental visibility rules.",
                "type": "object",
                "properties": {
                  "groupIds": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  },
                  "userIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  }
                },
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "updates"
        ],
        "additionalProperties": false
      },
      "RentalCarResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "companyName": {
                "description": "Rental car company name.",
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "label": {
                "description": "Optional short display label.",
                "type": "string",
                "maxLength": 100
              },
              "confirmationNumber": {
                "description": "Rental booking confirmation number.",
                "type": "string",
                "maxLength": 60
              },
              "status": {
                "default": "confirmed",
                "description": "Rental confirmation state.",
                "type": "string",
                "enum": [
                  "confirmed",
                  "unconfirmed"
                ]
              },
              "priority": {
                "default": "normal",
                "description": "Rental display priority.",
                "type": "string",
                "enum": [
                  "normal",
                  "high"
                ]
              },
              "pickupDate": {
                "description": "Local rental date in YYYY-MM-DD format at the corresponding rental location.",
                "type": "string",
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
              },
              "pickupTime": {
                "description": "Local rental time in HH:mm 24-hour format at the corresponding rental location.",
                "type": "string",
                "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
              },
              "pickupLocation": {
                "description": "Rental pickup or drop-off location, including its required timezone.",
                "type": "object",
                "properties": {
                  "label": {
                    "description": "Human-readable place label.",
                    "type": "string",
                    "maxLength": 200
                  },
                  "address": {
                    "description": "Street address or venue address.",
                    "type": "string",
                    "maxLength": 300
                  },
                  "placeId": {
                    "description": "Google Places ID when available.",
                    "type": "string",
                    "maxLength": 255
                  },
                  "latitude": {
                    "description": "Latitude in decimal degrees.",
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90
                  },
                  "longitude": {
                    "description": "Longitude in decimal degrees.",
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180
                  },
                  "timezone": {
                    "description": "IANA timezone used to interpret and display the rental pickup or drop-off time."
                  }
                },
                "required": [
                  "timezone"
                ],
                "additionalProperties": false
              },
              "dropoffDate": {
                "description": "Local rental date in YYYY-MM-DD format at the corresponding rental location.",
                "type": "string",
                "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
              },
              "dropoffTime": {
                "description": "Local rental time in HH:mm 24-hour format at the corresponding rental location.",
                "type": "string",
                "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
              },
              "dropoffLocation": {
                "description": "Rental pickup or drop-off location, including its required timezone.",
                "type": "object",
                "properties": {
                  "label": {
                    "description": "Human-readable place label.",
                    "type": "string",
                    "maxLength": 200
                  },
                  "address": {
                    "description": "Street address or venue address.",
                    "type": "string",
                    "maxLength": 300
                  },
                  "placeId": {
                    "description": "Google Places ID when available.",
                    "type": "string",
                    "maxLength": 255
                  },
                  "latitude": {
                    "description": "Latitude in decimal degrees.",
                    "type": "number",
                    "minimum": -90,
                    "maximum": 90
                  },
                  "longitude": {
                    "description": "Longitude in decimal degrees.",
                    "type": "number",
                    "minimum": -180,
                    "maximum": 180
                  },
                  "timezone": {
                    "description": "IANA timezone used to interpret and display the rental pickup or drop-off time."
                  }
                },
                "required": [
                  "timezone"
                ],
                "additionalProperties": false
              },
              "primaryDriver": {
                "description": "Primary renter or driver.",
                "type": "object",
                "properties": {
                  "name": {
                    "description": "Contact person's name.",
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "title": {
                    "description": "Contact person's role or job title.",
                    "type": "string",
                    "maxLength": 150
                  },
                  "phone": {
                    "description": "Contact phone number.",
                    "type": "string",
                    "maxLength": 50,
                    "pattern": "^[+0-9().\\-\\s]+$"
                  },
                  "email": {
                    "description": "Contact email address.",
                    "type": "string",
                    "maxLength": 200,
                    "format": "email",
                    "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                  },
                  "notes": {
                    "description": "Short notes about this contact.",
                    "type": "string",
                    "maxLength": 300
                  }
                },
                "required": [
                  "name"
                ],
                "additionalProperties": false
              },
              "vehicleClass": {
                "description": "Reserved vehicle class.",
                "type": "string",
                "maxLength": 150
              },
              "vehicleDescription": {
                "description": "Assigned vehicle or other vehicle details.",
                "type": "string",
                "maxLength": 200
              },
              "contacts": {
                "default": [],
                "description": "Rental company contacts.",
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "object",
                  "properties": {
                    "name": {
                      "description": "Contact person's name.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200
                    },
                    "title": {
                      "description": "Contact person's role or job title.",
                      "type": "string",
                      "maxLength": 150
                    },
                    "phone": {
                      "description": "Contact phone number.",
                      "type": "string",
                      "maxLength": 50,
                      "pattern": "^[+0-9().\\-\\s]+$"
                    },
                    "email": {
                      "description": "Contact email address.",
                      "type": "string",
                      "maxLength": 200,
                      "format": "email",
                      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                    },
                    "notes": {
                      "description": "Short notes about this contact.",
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "additionalProperties": false
                }
              },
              "notes": {
                "description": "General rental notes.",
                "type": "string",
                "maxLength": 2000
              },
              "sourceMetadata": {
                "description": "Integration or import metadata retained with the rental.",
                "type": "object",
                "additionalProperties": {}
              },
              "visibility": {
                "description": "Optional rental visibility rules.",
                "type": "object",
                "properties": {
                  "groupIds": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  },
                  "userIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  }
                },
                "additionalProperties": false
              },
              "pickupAt": {
                "description": "Derived UTC pickup timestamp.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "dropoffAt": {
                "description": "Derived UTC drop-off timestamp.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "id": {
                "description": "Rental car identifier.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "orgId": {
                "description": "Team identifier.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "isDeleted": {
                "description": "Soft-delete flag.",
                "default": false,
                "type": "boolean"
              },
              "version": {
                "description": "Current rental car aggregate version.",
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "createdAt": {
                "description": "ISO 8601 timestamp when the rental car was created.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "createdBy": {
                "description": "User identifier that created the rental car.",
                "type": "string"
              },
              "updatedAt": {
                "description": "ISO 8601 timestamp of the latest update.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "updatedBy": {
                "description": "User identifier that last updated the rental car.",
                "type": "string"
              },
              "cursor": {
                "description": "Latest projected event-ledger cursor.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "companyName",
              "status",
              "priority",
              "pickupDate",
              "pickupTime",
              "pickupLocation",
              "dropoffDate",
              "dropoffTime",
              "dropoffLocation",
              "contacts",
              "pickupAt",
              "dropoffAt",
              "id",
              "orgId",
              "isDeleted",
              "version",
              "createdAt",
              "createdBy",
              "cursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "additionalProperties": false
      },
      "RentalCarListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "companyName": {
                  "description": "Rental car company name.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "label": {
                  "description": "Optional short display label.",
                  "type": "string",
                  "maxLength": 100
                },
                "confirmationNumber": {
                  "description": "Rental booking confirmation number.",
                  "type": "string",
                  "maxLength": 60
                },
                "status": {
                  "default": "confirmed",
                  "description": "Rental confirmation state.",
                  "type": "string",
                  "enum": [
                    "confirmed",
                    "unconfirmed"
                  ]
                },
                "priority": {
                  "default": "normal",
                  "description": "Rental display priority.",
                  "type": "string",
                  "enum": [
                    "normal",
                    "high"
                  ]
                },
                "pickupDate": {
                  "description": "Local rental date in YYYY-MM-DD format at the corresponding rental location.",
                  "type": "string",
                  "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                },
                "pickupTime": {
                  "description": "Local rental time in HH:mm 24-hour format at the corresponding rental location.",
                  "type": "string",
                  "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
                },
                "pickupLocation": {
                  "description": "Rental pickup or drop-off location, including its required timezone.",
                  "type": "object",
                  "properties": {
                    "label": {
                      "description": "Human-readable place label.",
                      "type": "string",
                      "maxLength": 200
                    },
                    "address": {
                      "description": "Street address or venue address.",
                      "type": "string",
                      "maxLength": 300
                    },
                    "placeId": {
                      "description": "Google Places ID when available.",
                      "type": "string",
                      "maxLength": 255
                    },
                    "latitude": {
                      "description": "Latitude in decimal degrees.",
                      "type": "number",
                      "minimum": -90,
                      "maximum": 90
                    },
                    "longitude": {
                      "description": "Longitude in decimal degrees.",
                      "type": "number",
                      "minimum": -180,
                      "maximum": 180
                    },
                    "timezone": {
                      "description": "IANA timezone used to interpret and display the rental pickup or drop-off time."
                    }
                  },
                  "required": [
                    "timezone"
                  ],
                  "additionalProperties": false
                },
                "dropoffDate": {
                  "description": "Local rental date in YYYY-MM-DD format at the corresponding rental location.",
                  "type": "string",
                  "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                },
                "dropoffTime": {
                  "description": "Local rental time in HH:mm 24-hour format at the corresponding rental location.",
                  "type": "string",
                  "pattern": "^(?:[01]\\d|2[0-3]):[0-5]\\d$"
                },
                "dropoffLocation": {
                  "description": "Rental pickup or drop-off location, including its required timezone.",
                  "type": "object",
                  "properties": {
                    "label": {
                      "description": "Human-readable place label.",
                      "type": "string",
                      "maxLength": 200
                    },
                    "address": {
                      "description": "Street address or venue address.",
                      "type": "string",
                      "maxLength": 300
                    },
                    "placeId": {
                      "description": "Google Places ID when available.",
                      "type": "string",
                      "maxLength": 255
                    },
                    "latitude": {
                      "description": "Latitude in decimal degrees.",
                      "type": "number",
                      "minimum": -90,
                      "maximum": 90
                    },
                    "longitude": {
                      "description": "Longitude in decimal degrees.",
                      "type": "number",
                      "minimum": -180,
                      "maximum": 180
                    },
                    "timezone": {
                      "description": "IANA timezone used to interpret and display the rental pickup or drop-off time."
                    }
                  },
                  "required": [
                    "timezone"
                  ],
                  "additionalProperties": false
                },
                "primaryDriver": {
                  "description": "Primary renter or driver.",
                  "type": "object",
                  "properties": {
                    "name": {
                      "description": "Contact person's name.",
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 200
                    },
                    "title": {
                      "description": "Contact person's role or job title.",
                      "type": "string",
                      "maxLength": 150
                    },
                    "phone": {
                      "description": "Contact phone number.",
                      "type": "string",
                      "maxLength": 50,
                      "pattern": "^[+0-9().\\-\\s]+$"
                    },
                    "email": {
                      "description": "Contact email address.",
                      "type": "string",
                      "maxLength": 200,
                      "format": "email",
                      "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                    },
                    "notes": {
                      "description": "Short notes about this contact.",
                      "type": "string",
                      "maxLength": 300
                    }
                  },
                  "required": [
                    "name"
                  ],
                  "additionalProperties": false
                },
                "vehicleClass": {
                  "description": "Reserved vehicle class.",
                  "type": "string",
                  "maxLength": 150
                },
                "vehicleDescription": {
                  "description": "Assigned vehicle or other vehicle details.",
                  "type": "string",
                  "maxLength": 200
                },
                "contacts": {
                  "default": [],
                  "description": "Rental company contacts.",
                  "maxItems": 50,
                  "type": "array",
                  "items": {
                    "type": "object",
                    "properties": {
                      "name": {
                        "description": "Contact person's name.",
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "title": {
                        "description": "Contact person's role or job title.",
                        "type": "string",
                        "maxLength": 150
                      },
                      "phone": {
                        "description": "Contact phone number.",
                        "type": "string",
                        "maxLength": 50,
                        "pattern": "^[+0-9().\\-\\s]+$"
                      },
                      "email": {
                        "description": "Contact email address.",
                        "type": "string",
                        "maxLength": 200,
                        "format": "email",
                        "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                      },
                      "notes": {
                        "description": "Short notes about this contact.",
                        "type": "string",
                        "maxLength": 300
                      }
                    },
                    "required": [
                      "name"
                    ],
                    "additionalProperties": false
                  }
                },
                "notes": {
                  "description": "General rental notes.",
                  "type": "string",
                  "maxLength": 2000
                },
                "sourceMetadata": {
                  "description": "Integration or import metadata retained with the rental.",
                  "type": "object",
                  "additionalProperties": {}
                },
                "visibility": {
                  "description": "Optional rental visibility rules.",
                  "type": "object",
                  "properties": {
                    "groupIds": {
                      "maxItems": 50,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      }
                    },
                    "userIds": {
                      "maxItems": 200,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "pickupAt": {
                  "description": "Derived UTC pickup timestamp.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "dropoffAt": {
                  "description": "Derived UTC drop-off timestamp.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "id": {
                  "description": "Rental car identifier.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "orgId": {
                  "description": "Team identifier.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "isDeleted": {
                  "description": "Soft-delete flag.",
                  "default": false,
                  "type": "boolean"
                },
                "version": {
                  "description": "Current rental car aggregate version.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "createdAt": {
                  "description": "ISO 8601 timestamp when the rental car was created.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "createdBy": {
                  "description": "User identifier that created the rental car.",
                  "type": "string"
                },
                "updatedAt": {
                  "description": "ISO 8601 timestamp of the latest update.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "updatedBy": {
                  "description": "User identifier that last updated the rental car.",
                  "type": "string"
                },
                "cursor": {
                  "description": "Latest projected event-ledger cursor.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "companyName",
                "status",
                "priority",
                "pickupDate",
                "pickupTime",
                "pickupLocation",
                "dropoffDate",
                "dropoffTime",
                "dropoffLocation",
                "contacts",
                "pickupAt",
                "dropoffAt",
                "id",
                "orgId",
                "isDeleted",
                "version",
                "createdAt",
                "createdBy",
                "cursor"
              ],
              "additionalProperties": false
            }
          },
          "page": {
            "type": "object",
            "properties": {
              "limit": {
                "description": "Maximum number of records returned in this page.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "nextCursor": {
                "description": "Cursor to pass as the next request's cursor query parameter, or null when there are no more results.",
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "limit",
              "nextCursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "nullable": true,
                "type": "number"
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "page",
          "meta"
        ],
        "additionalProperties": false
      },
      "MemberCreateRequest": {
        "type": "object",
        "properties": {
          "invitationId": {
            "description": "Optional caller-supplied invitation ID. RoadOps generates one when omitted.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "email": {
            "description": "Email address for the invited member.",
            "type": "string",
            "format": "email",
            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
          },
          "role": {
            "description": "Role to grant when the invitation is accepted.",
            "type": "string",
            "enum": [
              "admin",
              "user",
              "custom"
            ]
          },
          "scopes": {
            "description": "Explicit normalized scopes required when role is custom.",
            "type": "array",
            "items": {
              "description": "A team capability granted to the organization member.",
              "type": "string",
              "enum": [
                "days:view",
                "days:manage",
                "schedule-travel:view",
                "schedule-travel:manage",
                "notes:view",
                "notes:manage-own",
                "notes:manage-all",
                "events-venues:view",
                "events-venues:manage",
                "set-lists:view",
                "set-lists:manage",
                "guest-list:view-own",
                "guest-list:view-all",
                "guest-list:manage-own",
                "guest-list:manage-all",
                "lodging:view",
                "lodging:manage",
                "files:view",
                "files:manage",
                "broadcasts:view",
                "broadcasts:manage",
                "team-members:view",
                "team-members:manage",
                "travel-parties:view",
                "travel-parties:manage",
                "settings:manage"
              ]
            }
          },
          "message": {
            "description": "Optional invitation message.",
            "type": "string",
            "maxLength": 2000
          },
          "expiresAt": {
            "description": "Optional ISO 8601 timestamp when the invitation expires.",
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          },
          "automaticRemovalDate": {
            "description": "Optional date-only value in YYYY-MM-DD format when the member should be automatically removed.",
            "type": "string"
          }
        },
        "required": [
          "email",
          "role"
        ],
        "additionalProperties": false
      },
      "MemberUpdateRequest": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "description": "Optional membership aggregate version guard.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "role": {
            "description": "Updated member role.",
            "type": "string",
            "enum": [
              "admin",
              "user",
              "custom"
            ]
          },
          "scopes": {
            "description": "Replacement Custom permission scopes.",
            "type": "array",
            "items": {
              "description": "A team capability granted to the organization member.",
              "type": "string",
              "enum": [
                "days:view",
                "days:manage",
                "schedule-travel:view",
                "schedule-travel:manage",
                "notes:view",
                "notes:manage-own",
                "notes:manage-all",
                "events-venues:view",
                "events-venues:manage",
                "set-lists:view",
                "set-lists:manage",
                "guest-list:view-own",
                "guest-list:view-all",
                "guest-list:manage-own",
                "guest-list:manage-all",
                "lodging:view",
                "lodging:manage",
                "files:view",
                "files:manage",
                "broadcasts:view",
                "broadcasts:manage",
                "team-members:view",
                "team-members:manage",
                "travel-parties:view",
                "travel-parties:manage",
                "settings:manage"
              ]
            }
          },
          "automaticRemovalDate": {
            "description": "Updated automatic removal date in YYYY-MM-DD format, or null to clear it.",
            "nullable": true,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "MemberResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "description": "Stable member identifier used in API paths.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "orgId": {
                "description": "Team identifier.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "membershipId": {
                "description": "Stable membership aggregate identifier.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "userId": {
                "description": "RoadOps user identifier for the member.",
                "type": "string"
              },
              "role": {
                "description": "Member role in the team.",
                "type": "string",
                "enum": [
                  "admin",
                  "user",
                  "custom"
                ]
              },
              "scopes": {
                "description": "Resolved effective permission scopes for the member.",
                "type": "array",
                "items": {
                  "description": "A team capability granted to the organization member.",
                  "type": "string",
                  "enum": [
                    "days:view",
                    "days:manage",
                    "schedule-travel:view",
                    "schedule-travel:manage",
                    "notes:view",
                    "notes:manage-own",
                    "notes:manage-all",
                    "events-venues:view",
                    "events-venues:manage",
                    "set-lists:view",
                    "set-lists:manage",
                    "guest-list:view-own",
                    "guest-list:view-all",
                    "guest-list:manage-own",
                    "guest-list:manage-all",
                    "lodging:view",
                    "lodging:manage",
                    "files:view",
                    "files:manage",
                    "broadcasts:view",
                    "broadcasts:manage",
                    "team-members:view",
                    "team-members:manage",
                    "travel-parties:view",
                    "travel-parties:manage",
                    "settings:manage"
                  ]
                }
              },
              "permissionsVersion": {
                "description": "Version of the member permission profile.",
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "status": {
                "description": "Current membership status.",
                "type": "string",
                "enum": [
                  "active",
                  "departed",
                  "removed"
                ]
              },
              "joinedAt": {
                "description": "ISO 8601 timestamp when the member joined.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "grantedAt": {
                "description": "ISO 8601 timestamp when access was granted.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "grantedBy": {
                "description": "User identifier that granted access.",
                "type": "string"
              },
              "memberName": {
                "description": "Member display name.",
                "type": "string"
              },
              "givenName": {
                "description": "Member first or given name visible to the caller.",
                "type": "string"
              },
              "familyName": {
                "description": "Member last or family name visible to the caller.",
                "type": "string"
              },
              "memberEmail": {
                "description": "Member email address.",
                "type": "string",
                "format": "email",
                "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
              },
              "memberPicture": {
                "description": "Member profile photo URL.",
                "type": "string",
                "format": "uri"
              },
              "scheduleNoticeWindow": {
                "description": "Member schedule notice preference.",
                "type": "string",
                "enum": [
                  "24h",
                  "48h",
                  "off"
                ]
              },
              "automaticRemovalDate": {
                "description": "Date-only value in YYYY-MM-DD format when this member is scheduled for automatic removal.",
                "type": "string"
              },
              "automaticRemovalSetBy": {
                "description": "User identifier that set the automatic removal date.",
                "type": "string"
              },
              "automaticRemovalSetAt": {
                "description": "ISO 8601 timestamp when automatic removal was set.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "updatedAt": {
                "description": "ISO 8601 timestamp when this member record was last updated.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "updatedBy": {
                "description": "User identifier that last updated this member record.",
                "type": "string"
              },
              "version": {
                "description": "Current projected record version.",
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "membershipVersion": {
                "description": "Current membership aggregate version.",
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "cursor": {
                "description": "Latest event-ledger cursor projected into this member record.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "id",
              "orgId",
              "membershipId",
              "userId",
              "role",
              "scopes",
              "permissionsVersion",
              "status",
              "joinedAt",
              "grantedAt",
              "grantedBy",
              "version",
              "cursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "additionalProperties": false
      },
      "MemberListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "description": "Stable member identifier used in API paths.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "orgId": {
                  "description": "Team identifier.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "membershipId": {
                  "description": "Stable membership aggregate identifier.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "userId": {
                  "description": "RoadOps user identifier for the member.",
                  "type": "string"
                },
                "role": {
                  "description": "Member role in the team.",
                  "type": "string",
                  "enum": [
                    "admin",
                    "user",
                    "custom"
                  ]
                },
                "scopes": {
                  "description": "Resolved effective permission scopes for the member.",
                  "type": "array",
                  "items": {
                    "description": "A team capability granted to the organization member.",
                    "type": "string",
                    "enum": [
                      "days:view",
                      "days:manage",
                      "schedule-travel:view",
                      "schedule-travel:manage",
                      "notes:view",
                      "notes:manage-own",
                      "notes:manage-all",
                      "events-venues:view",
                      "events-venues:manage",
                      "set-lists:view",
                      "set-lists:manage",
                      "guest-list:view-own",
                      "guest-list:view-all",
                      "guest-list:manage-own",
                      "guest-list:manage-all",
                      "lodging:view",
                      "lodging:manage",
                      "files:view",
                      "files:manage",
                      "broadcasts:view",
                      "broadcasts:manage",
                      "team-members:view",
                      "team-members:manage",
                      "travel-parties:view",
                      "travel-parties:manage",
                      "settings:manage"
                    ]
                  }
                },
                "permissionsVersion": {
                  "description": "Version of the member permission profile.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "status": {
                  "description": "Current membership status.",
                  "type": "string",
                  "enum": [
                    "active",
                    "departed",
                    "removed"
                  ]
                },
                "joinedAt": {
                  "description": "ISO 8601 timestamp when the member joined.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "grantedAt": {
                  "description": "ISO 8601 timestamp when access was granted.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "grantedBy": {
                  "description": "User identifier that granted access.",
                  "type": "string"
                },
                "memberName": {
                  "description": "Member display name.",
                  "type": "string"
                },
                "givenName": {
                  "description": "Member first or given name visible to the caller.",
                  "type": "string"
                },
                "familyName": {
                  "description": "Member last or family name visible to the caller.",
                  "type": "string"
                },
                "memberEmail": {
                  "description": "Member email address.",
                  "type": "string",
                  "format": "email",
                  "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                },
                "memberPicture": {
                  "description": "Member profile photo URL.",
                  "type": "string",
                  "format": "uri"
                },
                "scheduleNoticeWindow": {
                  "description": "Member schedule notice preference.",
                  "type": "string",
                  "enum": [
                    "24h",
                    "48h",
                    "off"
                  ]
                },
                "automaticRemovalDate": {
                  "description": "Date-only value in YYYY-MM-DD format when this member is scheduled for automatic removal.",
                  "type": "string"
                },
                "automaticRemovalSetBy": {
                  "description": "User identifier that set the automatic removal date.",
                  "type": "string"
                },
                "automaticRemovalSetAt": {
                  "description": "ISO 8601 timestamp when automatic removal was set.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "updatedAt": {
                  "description": "ISO 8601 timestamp when this member record was last updated.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "updatedBy": {
                  "description": "User identifier that last updated this member record.",
                  "type": "string"
                },
                "version": {
                  "description": "Current projected record version.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "membershipVersion": {
                  "description": "Current membership aggregate version.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "cursor": {
                  "description": "Latest event-ledger cursor projected into this member record.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "id",
                "orgId",
                "membershipId",
                "userId",
                "role",
                "scopes",
                "permissionsVersion",
                "status",
                "joinedAt",
                "grantedAt",
                "grantedBy",
                "version",
                "cursor"
              ],
              "additionalProperties": false
            }
          },
          "page": {
            "type": "object",
            "properties": {
              "limit": {
                "description": "Maximum number of records returned in this page.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "nextCursor": {
                "description": "Cursor to pass as the next request's cursor query parameter, or null when there are no more results.",
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "limit",
              "nextCursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "nullable": true,
                "type": "number"
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "page",
          "meta"
        ],
        "additionalProperties": false
      },
      "MemberInvitationListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "description": "Stable invitation identifier used in API paths.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "orgId": {
                  "description": "Team identifier.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "email": {
                  "description": "Email address invited to join the team.",
                  "type": "string",
                  "format": "email",
                  "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                },
                "role": {
                  "description": "Role the invitee will receive after accepting.",
                  "type": "string",
                  "enum": [
                    "admin",
                    "user",
                    "custom"
                  ]
                },
                "scopes": {
                  "description": "Resolved permission scopes the invitee will receive after accepting.",
                  "type": "array",
                  "items": {
                    "description": "A team capability granted to the organization member.",
                    "type": "string",
                    "enum": [
                      "days:view",
                      "days:manage",
                      "schedule-travel:view",
                      "schedule-travel:manage",
                      "notes:view",
                      "notes:manage-own",
                      "notes:manage-all",
                      "events-venues:view",
                      "events-venues:manage",
                      "set-lists:view",
                      "set-lists:manage",
                      "guest-list:view-own",
                      "guest-list:view-all",
                      "guest-list:manage-own",
                      "guest-list:manage-all",
                      "lodging:view",
                      "lodging:manage",
                      "files:view",
                      "files:manage",
                      "broadcasts:view",
                      "broadcasts:manage",
                      "team-members:view",
                      "team-members:manage",
                      "travel-parties:view",
                      "travel-parties:manage",
                      "settings:manage"
                    ]
                  }
                },
                "permissionsVersion": {
                  "description": "Version of the invitation permission profile.",
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 9007199254740991
                },
                "status": {
                  "description": "Current invitation status. This endpoint returns pending invitations only.",
                  "type": "string",
                  "enum": [
                    "pending"
                  ]
                },
                "message": {
                  "description": "Optional message included with the invitation.",
                  "type": "string"
                },
                "invitedBy": {
                  "description": "User identifier that created the invitation.",
                  "type": "string"
                },
                "invitedByEmail": {
                  "description": "Email address of the inviting user.",
                  "type": "string",
                  "format": "email",
                  "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                },
                "invitedByName": {
                  "description": "Display name of the inviting user.",
                  "type": "string"
                },
                "invitedAt": {
                  "description": "ISO 8601 timestamp when the invitation was created.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "expiresAt": {
                  "description": "ISO 8601 invitation expiration timestamp.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "automaticRemovalDate": {
                  "description": "Optional date when the accepted member should be automatically removed.",
                  "type": "string"
                },
                "version": {
                  "description": "Current projected invitation version.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                },
                "cursor": {
                  "description": "Latest event-ledger cursor projected into this invitation record.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "id",
                "orgId",
                "email",
                "role",
                "scopes",
                "permissionsVersion",
                "status",
                "invitedBy",
                "invitedAt",
                "version",
                "cursor"
              ],
              "additionalProperties": false
            }
          },
          "page": {
            "type": "object",
            "properties": {
              "limit": {
                "description": "Maximum number of records returned in this page.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "nextCursor": {
                "description": "Cursor to pass as the next request's cursor query parameter, or null when there are no more results.",
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "limit",
              "nextCursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest invitation cursor represented by this response.",
                "nullable": true,
                "type": "number"
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "page",
          "meta"
        ],
        "additionalProperties": false
      },
      "MemberProfileResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "description": "Stable member identifier used in API paths.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "orgId": {
                "description": "Team identifier.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "membershipId": {
                "description": "Stable membership aggregate identifier.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "userId": {
                "description": "RoadOps user identifier for the member.",
                "type": "string"
              },
              "memberName": {
                "description": "Member display name.",
                "type": "string"
              },
              "givenName": {
                "description": "Member first or given name visible to the caller.",
                "type": "string"
              },
              "familyName": {
                "description": "Member last or family name visible to the caller.",
                "type": "string"
              },
              "memberEmail": {
                "description": "Member email address visible to the caller.",
                "type": "string",
                "format": "email",
                "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
              },
              "memberPicture": {
                "description": "Member profile photo URL.",
                "type": "string",
                "format": "uri"
              },
              "fields": {
                "description": "Profile detail fields visible to the caller based on each field's visibility setting.",
                "type": "object",
                "properties": {
                  "firstName": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                      },
                      "visibility": {
                        "type": "string",
                        "enum": [
                          "private",
                          "org-admins",
                          "org-members"
                        ]
                      },
                      "updatedBy": {
                        "type": "object",
                        "properties": {
                          "actorId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "actorType": {
                            "type": "string",
                            "enum": [
                              "user",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "actorId",
                          "actorType"
                        ],
                        "additionalProperties": false
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      }
                    },
                    "required": [
                      "value",
                      "visibility",
                      "updatedBy",
                      "updatedAt"
                    ],
                    "additionalProperties": false
                  },
                  "lastName": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                      },
                      "visibility": {
                        "type": "string",
                        "enum": [
                          "private",
                          "org-admins",
                          "org-members"
                        ]
                      },
                      "updatedBy": {
                        "type": "object",
                        "properties": {
                          "actorId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "actorType": {
                            "type": "string",
                            "enum": [
                              "user",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "actorId",
                          "actorType"
                        ],
                        "additionalProperties": false
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      }
                    },
                    "required": [
                      "value",
                      "visibility",
                      "updatedBy",
                      "updatedAt"
                    ],
                    "additionalProperties": false
                  },
                  "preferredName": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 100
                      },
                      "visibility": {
                        "type": "string",
                        "enum": [
                          "private",
                          "org-admins",
                          "org-members"
                        ]
                      },
                      "updatedBy": {
                        "type": "object",
                        "properties": {
                          "actorId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "actorType": {
                            "type": "string",
                            "enum": [
                              "user",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "actorId",
                          "actorType"
                        ],
                        "additionalProperties": false
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      }
                    },
                    "required": [
                      "value",
                      "visibility",
                      "updatedBy",
                      "updatedAt"
                    ],
                    "additionalProperties": false
                  },
                  "email": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "type": "string",
                        "maxLength": 320,
                        "format": "email",
                        "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                      },
                      "visibility": {
                        "type": "string",
                        "enum": [
                          "private",
                          "org-admins",
                          "org-members"
                        ]
                      },
                      "updatedBy": {
                        "type": "object",
                        "properties": {
                          "actorId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "actorType": {
                            "type": "string",
                            "enum": [
                              "user",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "actorId",
                          "actorType"
                        ],
                        "additionalProperties": false
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      }
                    },
                    "required": [
                      "value",
                      "visibility",
                      "updatedBy",
                      "updatedAt"
                    ],
                    "additionalProperties": false
                  },
                  "profileImageUrl": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "type": "string",
                        "maxLength": 2048,
                        "format": "uri"
                      },
                      "visibility": {
                        "type": "string",
                        "enum": [
                          "private",
                          "org-admins",
                          "org-members"
                        ]
                      },
                      "updatedBy": {
                        "type": "object",
                        "properties": {
                          "actorId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "actorType": {
                            "type": "string",
                            "enum": [
                              "user",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "actorId",
                          "actorType"
                        ],
                        "additionalProperties": false
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      }
                    },
                    "required": [
                      "value",
                      "visibility",
                      "updatedBy",
                      "updatedAt"
                    ],
                    "additionalProperties": false
                  },
                  "phoneNumber": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 50
                      },
                      "visibility": {
                        "type": "string",
                        "enum": [
                          "private",
                          "org-admins",
                          "org-members"
                        ]
                      },
                      "updatedBy": {
                        "type": "object",
                        "properties": {
                          "actorId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "actorType": {
                            "type": "string",
                            "enum": [
                              "user",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "actorId",
                          "actorType"
                        ],
                        "additionalProperties": false
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      }
                    },
                    "required": [
                      "value",
                      "visibility",
                      "updatedBy",
                      "updatedAt"
                    ],
                    "additionalProperties": false
                  },
                  "mailingAddress": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 1000
                      },
                      "visibility": {
                        "type": "string",
                        "enum": [
                          "private",
                          "org-admins",
                          "org-members"
                        ]
                      },
                      "updatedBy": {
                        "type": "object",
                        "properties": {
                          "actorId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "actorType": {
                            "type": "string",
                            "enum": [
                              "user",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "actorId",
                          "actorType"
                        ],
                        "additionalProperties": false
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      }
                    },
                    "required": [
                      "value",
                      "visibility",
                      "updatedBy",
                      "updatedAt"
                    ],
                    "additionalProperties": false
                  },
                  "gender": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "type": "string",
                        "enum": [
                          "male",
                          "female",
                          "other"
                        ]
                      },
                      "visibility": {
                        "type": "string",
                        "enum": [
                          "private",
                          "org-admins",
                          "org-members"
                        ]
                      },
                      "updatedBy": {
                        "type": "object",
                        "properties": {
                          "actorId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "actorType": {
                            "type": "string",
                            "enum": [
                              "user",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "actorId",
                          "actorType"
                        ],
                        "additionalProperties": false
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      }
                    },
                    "required": [
                      "value",
                      "visibility",
                      "updatedBy",
                      "updatedAt"
                    ],
                    "additionalProperties": false
                  },
                  "birthplace": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "visibility": {
                        "type": "string",
                        "enum": [
                          "private",
                          "org-admins",
                          "org-members"
                        ]
                      },
                      "updatedBy": {
                        "type": "object",
                        "properties": {
                          "actorId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "actorType": {
                            "type": "string",
                            "enum": [
                              "user",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "actorId",
                          "actorType"
                        ],
                        "additionalProperties": false
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      }
                    },
                    "required": [
                      "value",
                      "visibility",
                      "updatedBy",
                      "updatedAt"
                    ],
                    "additionalProperties": false
                  },
                  "nationality": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 200
                      },
                      "visibility": {
                        "type": "string",
                        "enum": [
                          "private",
                          "org-admins",
                          "org-members"
                        ]
                      },
                      "updatedBy": {
                        "type": "object",
                        "properties": {
                          "actorId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "actorType": {
                            "type": "string",
                            "enum": [
                              "user",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "actorId",
                          "actorType"
                        ],
                        "additionalProperties": false
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      }
                    },
                    "required": [
                      "value",
                      "visibility",
                      "updatedBy",
                      "updatedAt"
                    ],
                    "additionalProperties": false
                  },
                  "hotelRoomType": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 150
                      },
                      "visibility": {
                        "type": "string",
                        "enum": [
                          "private",
                          "org-admins",
                          "org-members"
                        ]
                      },
                      "updatedBy": {
                        "type": "object",
                        "properties": {
                          "actorId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "actorType": {
                            "type": "string",
                            "enum": [
                              "user",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "actorId",
                          "actorType"
                        ],
                        "additionalProperties": false
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      }
                    },
                    "required": [
                      "value",
                      "visibility",
                      "updatedBy",
                      "updatedAt"
                    ],
                    "additionalProperties": false
                  },
                  "busBunkPreference": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "type": "object",
                        "properties": {
                          "side": {
                            "type": "string",
                            "enum": [
                              "driver-side",
                              "passenger-side"
                            ]
                          },
                          "bunk": {
                            "type": "string",
                            "enum": [
                              "top",
                              "middle",
                              "bottom"
                            ]
                          },
                          "position": {
                            "type": "string",
                            "enum": [
                              "front",
                              "back"
                            ]
                          }
                        },
                        "required": [
                          "side",
                          "bunk",
                          "position"
                        ],
                        "additionalProperties": false
                      },
                      "visibility": {
                        "type": "string",
                        "enum": [
                          "private",
                          "org-admins",
                          "org-members"
                        ]
                      },
                      "updatedBy": {
                        "type": "object",
                        "properties": {
                          "actorId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "actorType": {
                            "type": "string",
                            "enum": [
                              "user",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "actorId",
                          "actorType"
                        ],
                        "additionalProperties": false
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      }
                    },
                    "required": [
                      "value",
                      "visibility",
                      "updatedBy",
                      "updatedAt"
                    ],
                    "additionalProperties": false
                  },
                  "flightSeatingPreference": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "type": "string",
                        "enum": [
                          "aisle",
                          "window"
                        ]
                      },
                      "visibility": {
                        "type": "string",
                        "enum": [
                          "private",
                          "org-admins",
                          "org-members"
                        ]
                      },
                      "updatedBy": {
                        "type": "object",
                        "properties": {
                          "actorId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "actorType": {
                            "type": "string",
                            "enum": [
                              "user",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "actorId",
                          "actorType"
                        ],
                        "additionalProperties": false
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      }
                    },
                    "required": [
                      "value",
                      "visibility",
                      "updatedBy",
                      "updatedAt"
                    ],
                    "additionalProperties": false
                  },
                  "travelTimePreference": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "type": "string",
                        "enum": [
                          "am",
                          "pm"
                        ]
                      },
                      "visibility": {
                        "type": "string",
                        "enum": [
                          "private",
                          "org-admins",
                          "org-members"
                        ]
                      },
                      "updatedBy": {
                        "type": "object",
                        "properties": {
                          "actorId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "actorType": {
                            "type": "string",
                            "enum": [
                              "user",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "actorId",
                          "actorType"
                        ],
                        "additionalProperties": false
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      }
                    },
                    "required": [
                      "value",
                      "visibility",
                      "updatedBy",
                      "updatedAt"
                    ],
                    "additionalProperties": false
                  },
                  "passports": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "country": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 100
                            },
                            "number": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 100
                            },
                            "expiration": {
                              "type": "string",
                              "format": "date",
                              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
                            },
                            "issued": {
                              "type": "string",
                              "format": "date",
                              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))$"
                            },
                            "scanUrl": {
                              "type": "string",
                              "maxLength": 2048,
                              "format": "uri"
                            },
                            "nameOnPassport": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 200
                            }
                          },
                          "required": [
                            "country",
                            "number",
                            "expiration",
                            "issued"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "visibility": {
                        "type": "string",
                        "enum": [
                          "private",
                          "org-admins",
                          "org-members"
                        ]
                      },
                      "updatedBy": {
                        "type": "object",
                        "properties": {
                          "actorId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "actorType": {
                            "type": "string",
                            "enum": [
                              "user",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "actorId",
                          "actorType"
                        ],
                        "additionalProperties": false
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      }
                    },
                    "required": [
                      "value",
                      "visibility",
                      "updatedBy",
                      "updatedAt"
                    ],
                    "additionalProperties": false
                  },
                  "frequentFlyerNumbers": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "maxItems": 20,
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "program": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 100
                            },
                            "number": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 100
                            }
                          },
                          "required": [
                            "program",
                            "number"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "visibility": {
                        "type": "string",
                        "enum": [
                          "private",
                          "org-admins",
                          "org-members"
                        ]
                      },
                      "updatedBy": {
                        "type": "object",
                        "properties": {
                          "actorId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "actorType": {
                            "type": "string",
                            "enum": [
                              "user",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "actorId",
                          "actorType"
                        ],
                        "additionalProperties": false
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      }
                    },
                    "required": [
                      "value",
                      "visibility",
                      "updatedBy",
                      "updatedAt"
                    ],
                    "additionalProperties": false
                  },
                  "dietaryRestrictions": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 2000
                      },
                      "visibility": {
                        "type": "string",
                        "enum": [
                          "private",
                          "org-admins",
                          "org-members"
                        ]
                      },
                      "updatedBy": {
                        "type": "object",
                        "properties": {
                          "actorId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "actorType": {
                            "type": "string",
                            "enum": [
                              "user",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "actorId",
                          "actorType"
                        ],
                        "additionalProperties": false
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      }
                    },
                    "required": [
                      "value",
                      "visibility",
                      "updatedBy",
                      "updatedAt"
                    ],
                    "additionalProperties": false
                  },
                  "allergies": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 2000
                      },
                      "visibility": {
                        "type": "string",
                        "enum": [
                          "private",
                          "org-admins",
                          "org-members"
                        ]
                      },
                      "updatedBy": {
                        "type": "object",
                        "properties": {
                          "actorId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "actorType": {
                            "type": "string",
                            "enum": [
                              "user",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "actorId",
                          "actorType"
                        ],
                        "additionalProperties": false
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      }
                    },
                    "required": [
                      "value",
                      "visibility",
                      "updatedBy",
                      "updatedAt"
                    ],
                    "additionalProperties": false
                  },
                  "emergencyContact": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "type": "object",
                        "properties": {
                          "name": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "relationship": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 100
                          },
                          "phone": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 50
                          },
                          "email": {
                            "type": "string",
                            "maxLength": 320,
                            "format": "email",
                            "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                          }
                        },
                        "required": [
                          "name"
                        ],
                        "additionalProperties": false
                      },
                      "visibility": {
                        "type": "string",
                        "enum": [
                          "private",
                          "org-admins",
                          "org-members"
                        ]
                      },
                      "updatedBy": {
                        "type": "object",
                        "properties": {
                          "actorId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "actorType": {
                            "type": "string",
                            "enum": [
                              "user",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "actorId",
                          "actorType"
                        ],
                        "additionalProperties": false
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      }
                    },
                    "required": [
                      "value",
                      "visibility",
                      "updatedBy",
                      "updatedAt"
                    ],
                    "additionalProperties": false
                  },
                  "swagSizes": {
                    "type": "object",
                    "properties": {
                      "value": {
                        "type": "object",
                        "properties": {
                          "height": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 50
                          },
                          "weight": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 50
                          },
                          "shirt": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 50
                          },
                          "pants": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 50
                          },
                          "shoes": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 50
                          },
                          "jacket": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 50
                          },
                          "hat": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 50
                          }
                        },
                        "additionalProperties": false
                      },
                      "visibility": {
                        "type": "string",
                        "enum": [
                          "private",
                          "org-admins",
                          "org-members"
                        ]
                      },
                      "updatedBy": {
                        "type": "object",
                        "properties": {
                          "actorId": {
                            "type": "string",
                            "minLength": 1
                          },
                          "actorType": {
                            "type": "string",
                            "enum": [
                              "user",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "actorId",
                          "actorType"
                        ],
                        "additionalProperties": false
                      },
                      "updatedAt": {
                        "type": "string",
                        "format": "date-time",
                        "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                      }
                    },
                    "required": [
                      "value",
                      "visibility",
                      "updatedBy",
                      "updatedAt"
                    ],
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              },
              "version": {
                "description": "Current profile detail version.",
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "cursor": {
                "description": "Latest cursor represented by the membership, profile, and profile details.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "id",
              "orgId",
              "membershipId",
              "userId",
              "fields",
              "version",
              "cursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "additionalProperties": false
      },
      "UserGroupCreateRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "labelColor": {
            "nullable": true,
            "type": "string",
            "pattern": "^#[0-9a-fA-F]{6}$"
          },
          "id": {
            "description": "Optional caller-supplied user group ID. RoadOps generates one when omitted.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "name"
        ],
        "additionalProperties": false
      },
      "UserGroupUpdateRequest": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "description": "Optional aggregate version guard.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "name": {
            "description": "Updated user group name.",
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "labelColor": {
            "description": "Updated user group label color as a 6 digit hex string, or null to clear it.",
            "anyOf": [
              {
                "type": "string",
                "pattern": "^#[0-9a-fA-F]{6}$"
              },
              {
                "type": "string",
                "nullable": true,
                "enum": [
                  null
                ]
              }
            ]
          }
        },
        "additionalProperties": false
      },
      "UserGroupDeleteRequest": {
        "type": "object",
        "properties": {
          "reason": {
            "description": "Optional deletion reason.",
            "type": "string",
            "maxLength": 500
          }
        },
        "additionalProperties": false
      },
      "UserGroupMemberAddRequest": {
        "type": "object",
        "properties": {
          "userId": {
            "description": "RoadOps user identifier to add to the travel party. The user must already be a member of the team.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "userId"
        ],
        "additionalProperties": false
      },
      "UserGroupResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 120
              },
              "labelColor": {
                "nullable": true,
                "type": "string",
                "pattern": "^#[0-9a-fA-F]{6}$"
              },
              "id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "orgId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "isDeleted": {
                "default": false,
                "type": "boolean"
              },
              "version": {
                "description": "Current user group aggregate version.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "createdAt": {
                "description": "ISO 8601 timestamp when the user group was created.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "createdBy": {
                "description": "User identifier that created the user group.",
                "type": "string"
              },
              "updatedAt": {
                "description": "ISO 8601 timestamp when the user group was last updated.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "updatedBy": {
                "description": "User identifier that last updated the user group.",
                "type": "string"
              },
              "cursor": {
                "description": "Latest event-ledger cursor projected into this user group record.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "name",
              "id",
              "orgId",
              "isDeleted",
              "version",
              "createdAt",
              "createdBy",
              "updatedAt",
              "updatedBy",
              "cursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "additionalProperties": false
      },
      "UserGroupListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 120
                },
                "labelColor": {
                  "nullable": true,
                  "type": "string",
                  "pattern": "^#[0-9a-fA-F]{6}$"
                },
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "orgId": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "isDeleted": {
                  "default": false,
                  "type": "boolean"
                },
                "version": {
                  "description": "Current user group aggregate version.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                },
                "createdAt": {
                  "description": "ISO 8601 timestamp when the user group was created.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "createdBy": {
                  "description": "User identifier that created the user group.",
                  "type": "string"
                },
                "updatedAt": {
                  "description": "ISO 8601 timestamp when the user group was last updated.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "updatedBy": {
                  "description": "User identifier that last updated the user group.",
                  "type": "string"
                },
                "cursor": {
                  "description": "Latest event-ledger cursor projected into this user group record.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "name",
                "id",
                "orgId",
                "isDeleted",
                "version",
                "createdAt",
                "createdBy",
                "updatedAt",
                "updatedBy",
                "cursor"
              ],
              "additionalProperties": false
            }
          },
          "page": {
            "type": "object",
            "properties": {
              "limit": {
                "description": "Maximum number of records returned in this page.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "nextCursor": {
                "description": "Cursor to pass as the next request's cursor query parameter, or null when there are no more results.",
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "limit",
              "nextCursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "nullable": true,
                "type": "number"
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "page",
          "meta"
        ],
        "additionalProperties": false
      },
      "UserGroupMemberListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "description": "Stable user group membership identifier.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "orgId": {
                  "description": "Team identifier.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "groupId": {
                  "description": "Travel party identifier.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "userId": {
                  "description": "RoadOps user identifier for the member.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "memberName": {
                  "description": "Member display name visible to the caller.",
                  "type": "string"
                },
                "givenName": {
                  "description": "Member first or given name visible to the caller.",
                  "type": "string"
                },
                "familyName": {
                  "description": "Member last or family name visible to the caller.",
                  "type": "string"
                },
                "memberEmail": {
                  "description": "Member email address visible to the caller.",
                  "type": "string",
                  "format": "email",
                  "pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
                },
                "memberPicture": {
                  "description": "Member profile photo URL.",
                  "type": "string",
                  "format": "uri"
                },
                "createdAt": {
                  "description": "ISO 8601 timestamp when the member was added.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "createdBy": {
                  "description": "User identifier that added the member.",
                  "type": "string"
                },
                "updatedAt": {
                  "description": "ISO 8601 timestamp when the membership was last updated.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "updatedBy": {
                  "description": "User identifier that last updated the membership.",
                  "type": "string"
                },
                "version": {
                  "description": "Current user group membership version.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                },
                "cursor": {
                  "description": "Latest cursor represented by this user group membership record.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "id",
                "orgId",
                "groupId",
                "userId",
                "createdAt",
                "createdBy",
                "version",
                "cursor"
              ],
              "additionalProperties": false
            }
          },
          "page": {
            "type": "object",
            "properties": {
              "limit": {
                "description": "Maximum number of records returned in this page.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "nextCursor": {
                "description": "Cursor to pass as the next request's cursor query parameter, or null when there are no more results.",
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "limit",
              "nextCursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "nullable": true,
                "type": "number"
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "page",
          "meta"
        ],
        "additionalProperties": false
      },
      "PassTypeCreateRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "abbreviation": {
            "type": "string",
            "minLength": 1,
            "maxLength": 20
          },
          "isArchived": {
            "type": "boolean"
          },
          "id": {
            "description": "Optional caller-supplied pass type ID. RoadOps generates one when omitted.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "name",
          "abbreviation"
        ],
        "additionalProperties": false
      },
      "PassTypeUpdateRequest": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "description": "Optional aggregate version guard.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "name": {
            "description": "Updated pass type name.",
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "abbreviation": {
            "description": "Updated pass type abbreviation.",
            "type": "string",
            "minLength": 1,
            "maxLength": 20
          },
          "isArchived": {
            "description": "Whether this pass type is archived.",
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "PassTypeDeleteRequest": {
        "type": "object",
        "properties": {
          "deletedAt": {
            "description": "Optional deletion timestamp.",
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          }
        },
        "additionalProperties": false
      },
      "PassTypeResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 120
              },
              "abbreviation": {
                "type": "string",
                "minLength": 1,
                "maxLength": 20
              },
              "kind": {
                "description": "Catalog entry kind.",
                "type": "string",
                "enum": [
                  "pass"
                ]
              },
              "isArchived": {
                "default": false,
                "type": "boolean"
              },
              "id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "orgId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "isDeleted": {
                "default": false,
                "type": "boolean"
              },
              "version": {
                "description": "Current pass type aggregate version.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "createdAt": {
                "description": "ISO 8601 timestamp when the pass type was created.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "createdBy": {
                "description": "User identifier that created the pass type.",
                "type": "string"
              },
              "updatedAt": {
                "description": "ISO 8601 timestamp when the pass type was last updated.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "updatedBy": {
                "description": "User identifier that last updated the pass type.",
                "type": "string"
              },
              "cursor": {
                "description": "Latest event-ledger cursor projected into this pass type record.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "name",
              "abbreviation",
              "kind",
              "isArchived",
              "id",
              "orgId",
              "isDeleted",
              "version",
              "createdAt",
              "createdBy",
              "updatedAt",
              "updatedBy",
              "cursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "additionalProperties": false
      },
      "PassTypeListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 120
                },
                "abbreviation": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 20
                },
                "kind": {
                  "description": "Catalog entry kind.",
                  "type": "string",
                  "enum": [
                    "pass"
                  ]
                },
                "isArchived": {
                  "default": false,
                  "type": "boolean"
                },
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "orgId": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "isDeleted": {
                  "default": false,
                  "type": "boolean"
                },
                "version": {
                  "description": "Current pass type aggregate version.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                },
                "createdAt": {
                  "description": "ISO 8601 timestamp when the pass type was created.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "createdBy": {
                  "description": "User identifier that created the pass type.",
                  "type": "string"
                },
                "updatedAt": {
                  "description": "ISO 8601 timestamp when the pass type was last updated.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "updatedBy": {
                  "description": "User identifier that last updated the pass type.",
                  "type": "string"
                },
                "cursor": {
                  "description": "Latest event-ledger cursor projected into this pass type record.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "name",
                "abbreviation",
                "kind",
                "isArchived",
                "id",
                "orgId",
                "isDeleted",
                "version",
                "createdAt",
                "createdBy",
                "updatedAt",
                "updatedBy",
                "cursor"
              ],
              "additionalProperties": false
            }
          },
          "page": {
            "type": "object",
            "properties": {
              "limit": {
                "description": "Maximum number of records returned in this page.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "nextCursor": {
                "description": "Cursor to pass as the next request's cursor query parameter, or null when there are no more results.",
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "limit",
              "nextCursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "nullable": true,
                "type": "number"
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "page",
          "meta"
        ],
        "additionalProperties": false
      },
      "TicketTypeCreateRequest": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "abbreviation": {
            "type": "string",
            "minLength": 1,
            "maxLength": 20
          },
          "isArchived": {
            "type": "boolean"
          },
          "isDefault": {
            "type": "boolean"
          },
          "id": {
            "description": "Optional caller-supplied ticket type ID. RoadOps generates one when omitted.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "name",
          "abbreviation"
        ],
        "additionalProperties": false
      },
      "TicketTypeUpdateRequest": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "description": "Optional aggregate version guard.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "name": {
            "description": "Updated ticket type name.",
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "abbreviation": {
            "description": "Updated ticket type abbreviation.",
            "type": "string",
            "minLength": 1,
            "maxLength": 20
          },
          "isArchived": {
            "description": "Whether this ticket type is archived.",
            "type": "boolean"
          },
          "isDefault": {
            "description": "Whether this ticket type is the team default.",
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "TicketTypeDeleteRequest": {
        "type": "object",
        "properties": {
          "archivedAt": {
            "description": "Optional archive timestamp.",
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
          }
        },
        "additionalProperties": false
      },
      "TicketTypeResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 120
              },
              "abbreviation": {
                "type": "string",
                "minLength": 1,
                "maxLength": 20
              },
              "kind": {
                "description": "Catalog entry kind.",
                "type": "string",
                "enum": [
                  "ticket"
                ]
              },
              "isArchived": {
                "default": false,
                "type": "boolean"
              },
              "isDefault": {
                "default": false,
                "type": "boolean"
              },
              "id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "orgId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "isDeleted": {
                "default": false,
                "type": "boolean"
              },
              "version": {
                "description": "Current ticket type aggregate version.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "createdAt": {
                "description": "ISO 8601 timestamp when the ticket type was created.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "createdBy": {
                "description": "User identifier that created the ticket type.",
                "type": "string"
              },
              "updatedAt": {
                "description": "ISO 8601 timestamp when the ticket type was last updated.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "updatedBy": {
                "description": "User identifier that last updated the ticket type.",
                "type": "string"
              },
              "cursor": {
                "description": "Latest event-ledger cursor projected into this ticket type record.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "name",
              "abbreviation",
              "kind",
              "isArchived",
              "isDefault",
              "id",
              "orgId",
              "isDeleted",
              "version",
              "createdAt",
              "createdBy",
              "updatedAt",
              "updatedBy",
              "cursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "additionalProperties": false
      },
      "TicketTypeListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 120
                },
                "abbreviation": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 20
                },
                "kind": {
                  "description": "Catalog entry kind.",
                  "type": "string",
                  "enum": [
                    "ticket"
                  ]
                },
                "isArchived": {
                  "default": false,
                  "type": "boolean"
                },
                "isDefault": {
                  "default": false,
                  "type": "boolean"
                },
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "orgId": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "isDeleted": {
                  "default": false,
                  "type": "boolean"
                },
                "version": {
                  "description": "Current ticket type aggregate version.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                },
                "createdAt": {
                  "description": "ISO 8601 timestamp when the ticket type was created.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "createdBy": {
                  "description": "User identifier that created the ticket type.",
                  "type": "string"
                },
                "updatedAt": {
                  "description": "ISO 8601 timestamp when the ticket type was last updated.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "updatedBy": {
                  "description": "User identifier that last updated the ticket type.",
                  "type": "string"
                },
                "cursor": {
                  "description": "Latest event-ledger cursor projected into this ticket type record.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "name",
                "abbreviation",
                "kind",
                "isArchived",
                "isDefault",
                "id",
                "orgId",
                "isDeleted",
                "version",
                "createdAt",
                "createdBy",
                "updatedAt",
                "updatedBy",
                "cursor"
              ],
              "additionalProperties": false
            }
          },
          "page": {
            "type": "object",
            "properties": {
              "limit": {
                "description": "Maximum number of records returned in this page.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "nextCursor": {
                "description": "Cursor to pass as the next request's cursor query parameter, or null when there are no more results.",
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "limit",
              "nextCursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "nullable": true,
                "type": "number"
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "page",
          "meta"
        ],
        "additionalProperties": false
      },
      "DayNoteCreateRequest": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "maxLength": 120
          },
          "body": {
            "description": "Day note body. New lines are represented with \\n characters, and basic Markdown formatting is supported.",
            "type": "string",
            "maxLength": 4000
          },
          "visibility": {
            "description": "Day note visibility restrictions. A note restricted to only its creator is private and remains visible only to that creator, including when another member is an Admin or has notes:manage-all.",
            "type": "object",
            "properties": {
              "groupIds": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              },
              "userIds": {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              }
            },
            "additionalProperties": false
          },
          "id": {
            "description": "Optional caller-supplied day note ID. RoadOps generates one when omitted.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "body"
        ],
        "additionalProperties": false
      },
      "DayNoteUpdateRequest": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "description": "Optional aggregate version guard.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "updates": {
            "description": "Day note fields to update.",
            "type": "object",
            "properties": {
              "title": {
                "description": "Updated note title, or null to clear it.",
                "anyOf": [
                  {
                    "type": "string",
                    "maxLength": 120
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              },
              "body": {
                "description": "Updated note body. New lines are represented with \\n characters, and basic Markdown formatting is supported.",
                "type": "string",
                "maxLength": 4000
              },
              "visibility": {
                "description": "Updated visibility, or null to clear custom visibility.",
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "groupIds": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        }
                      },
                      "userIds": {
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "updates"
        ],
        "additionalProperties": false
      },
      "DayNoteDeleteRequest": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "DayNoteResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "dayId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "title": {
                "type": "string",
                "maxLength": 120
              },
              "body": {
                "description": "Day note body. New lines are represented with \\n characters, and basic Markdown formatting is supported.",
                "type": "string",
                "maxLength": 4000
              },
              "visibility": {
                "description": "Day note visibility restrictions. A note restricted to only its creator is private and remains visible only to that creator, including when another member is an Admin or has notes:manage-all.",
                "type": "object",
                "properties": {
                  "groupIds": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  },
                  "userIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  }
                },
                "additionalProperties": false
              },
              "id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "orgId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "isDeleted": {
                "default": false,
                "type": "boolean"
              },
              "version": {
                "description": "Current day note aggregate version.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "createdAt": {
                "description": "ISO 8601 timestamp when the day note was created.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "createdBy": {
                "description": "User identifier that created the day note.",
                "type": "string"
              },
              "updatedAt": {
                "description": "ISO 8601 timestamp when the day note was last updated.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "updatedBy": {
                "description": "User identifier that last updated the day note.",
                "type": "string"
              },
              "deletedAt": {
                "description": "ISO 8601 timestamp when the day note was deleted.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "cursor": {
                "description": "Latest event-ledger cursor projected into this day note record.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "dayId",
              "body",
              "id",
              "orgId",
              "isDeleted",
              "version",
              "createdAt",
              "createdBy",
              "cursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "additionalProperties": false
      },
      "DayNoteListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "dayId": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "title": {
                  "type": "string",
                  "maxLength": 120
                },
                "body": {
                  "description": "Day note body. New lines are represented with \\n characters, and basic Markdown formatting is supported.",
                  "type": "string",
                  "maxLength": 4000
                },
                "visibility": {
                  "description": "Day note visibility restrictions. A note restricted to only its creator is private and remains visible only to that creator, including when another member is an Admin or has notes:manage-all.",
                  "type": "object",
                  "properties": {
                    "groupIds": {
                      "maxItems": 50,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      }
                    },
                    "userIds": {
                      "maxItems": 200,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "orgId": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "isDeleted": {
                  "default": false,
                  "type": "boolean"
                },
                "version": {
                  "description": "Current day note aggregate version.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                },
                "createdAt": {
                  "description": "ISO 8601 timestamp when the day note was created.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "createdBy": {
                  "description": "User identifier that created the day note.",
                  "type": "string"
                },
                "updatedAt": {
                  "description": "ISO 8601 timestamp when the day note was last updated.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "updatedBy": {
                  "description": "User identifier that last updated the day note.",
                  "type": "string"
                },
                "deletedAt": {
                  "description": "ISO 8601 timestamp when the day note was deleted.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "cursor": {
                  "description": "Latest event-ledger cursor projected into this day note record.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "dayId",
                "body",
                "id",
                "orgId",
                "isDeleted",
                "version",
                "createdAt",
                "createdBy",
                "cursor"
              ],
              "additionalProperties": false
            }
          },
          "page": {
            "type": "object",
            "properties": {
              "limit": {
                "description": "Maximum number of records returned in this page.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "nextCursor": {
                "description": "Cursor to pass as the next request's cursor query parameter, or null when there are no more results.",
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "limit",
              "nextCursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "nullable": true,
                "type": "number"
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "page",
          "meta"
        ],
        "additionalProperties": false
      },
      "DayFileUploadRequest": {
        "type": "object",
        "properties": {
          "id": {
            "description": "Optional caller-supplied day file ID. Reuse the same ID when requesting a replacement URL for an upload that has not been completed. RoadOps generates one when omitted.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "fileName": {
            "description": "Original file name shown in RoadOps. Path separators and unsupported characters are removed before the upload target is created.",
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "contentType": {
            "description": "MIME type to store with the object. Defaults to application/octet-stream. Send the returned Content-Type header unchanged in the S3 PUT request.",
            "type": "string",
            "minLength": 1,
            "maxLength": 150
          },
          "sizeBytes": {
            "description": "Exact file size in bytes. Day file uploads are limited to 10 MB. The S3 PUT request must send this exact number of bytes.",
            "type": "integer",
            "minimum": 1,
            "maximum": 10485760
          }
        },
        "required": [
          "fileName",
          "sizeBytes"
        ],
        "additionalProperties": false
      },
      "DayFileUploadResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "fileId": {
                "description": "ID reserved for the day file.",
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "fileName": {
                "description": "Sanitized file name that RoadOps will display.",
                "type": "string"
              },
              "contentType": {
                "description": "MIME type that will be stored with the uploaded object.",
                "type": "string"
              },
              "sizeBytes": {
                "description": "Exact number of bytes expected by the signed upload request.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "upload": {
                "type": "object",
                "properties": {
                  "method": {
                    "description": "HTTP method required when sending the file directly to S3.",
                    "type": "string",
                    "enum": [
                      "PUT"
                    ]
                  },
                  "url": {
                    "description": "Short-lived presigned S3 URL. Send the raw file bytes to this URL; do not use multipart/form-data.",
                    "type": "string",
                    "format": "uri"
                  },
                  "expiresAt": {
                    "description": "ISO 8601 time when S3 stops accepting new upload requests through this URL.",
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                  },
                  "expiresInSeconds": {
                    "description": "Number of seconds the presigned URL remains valid after issuance.",
                    "type": "integer",
                    "exclusiveMinimum": true,
                    "maximum": 9007199254740991
                  },
                  "headers": {
                    "description": "Complete set of required headers for the S3 PUT request. Send every header exactly as returned and do not send the RoadOps Authorization header to S3.",
                    "type": "object",
                    "properties": {
                      "Content-Type": {
                        "description": "Required MIME type signed into the upload URL. Send this exact value.",
                        "type": "string"
                      },
                      "Content-Length": {
                        "description": "Required decimal byte length signed into the upload URL. Send this exact value.",
                        "type": "string"
                      },
                      "x-amz-meta-roadops-team-id": {
                        "description": "Required signed RoadOps team metadata. Send this exact value.",
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      },
                      "x-amz-meta-roadops-day-id": {
                        "description": "Required signed RoadOps day metadata. Send this exact value.",
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      },
                      "x-amz-meta-roadops-file-id": {
                        "description": "Required signed RoadOps file metadata. Send this exact value.",
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      },
                      "x-amz-meta-roadops-file-name": {
                        "description": "Required signed RoadOps file-name metadata. Send this exact value.",
                        "type": "string"
                      }
                    },
                    "required": [
                      "Content-Type",
                      "Content-Length",
                      "x-amz-meta-roadops-team-id",
                      "x-amz-meta-roadops-day-id",
                      "x-amz-meta-roadops-file-id",
                      "x-amz-meta-roadops-file-name"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "method",
                  "url",
                  "expiresAt",
                  "expiresInSeconds",
                  "headers"
                ],
                "additionalProperties": false
              },
              "completion": {
                "type": "object",
                "properties": {
                  "method": {
                    "description": "HTTP method used to complete the upload with RoadOps.",
                    "type": "string",
                    "enum": [
                      "POST"
                    ]
                  },
                  "path": {
                    "description": "Developer API path to call after S3 returns a successful 2xx response.",
                    "type": "string"
                  },
                  "body": {
                    "description": "Required fields to include in the completion request body.",
                    "type": "object",
                    "properties": {
                      "fileName": {
                        "description": "Sanitized file name to send unchanged in the completion request body.",
                        "type": "string"
                      }
                    },
                    "required": [
                      "fileName"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "method",
                  "path",
                  "body"
                ],
                "additionalProperties": false
              }
            },
            "required": [
              "fileId",
              "fileName",
              "contentType",
              "sizeBytes",
              "upload",
              "completion"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data"
        ],
        "additionalProperties": false
      },
      "DayFileUploadCompleteRequest": {
        "type": "object",
        "properties": {
          "fileName": {
            "description": "Sanitized file name returned by the prepare call. Send it unchanged so RoadOps can verify the uploaded S3 object.",
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "visibility": {
            "description": "Optional visibility rules applied when the uploaded object becomes a day file record.",
            "type": "object",
            "properties": {
              "groupIds": {
                "maxItems": 50,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              },
              "userIds": {
                "maxItems": 200,
                "type": "array",
                "items": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "fileName"
        ],
        "additionalProperties": false
      },
      "DayFileUpdateRequest": {
        "type": "object",
        "properties": {
          "expectedVersion": {
            "description": "Optional aggregate version guard.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "updates": {
            "description": "Day file fields to update.",
            "type": "object",
            "properties": {
              "visibility": {
                "description": "Updated visibility, or null to clear custom visibility.",
                "anyOf": [
                  {
                    "type": "object",
                    "properties": {
                      "groupIds": {
                        "maxItems": 50,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        }
                      },
                      "userIds": {
                        "maxItems": 200,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "format": "uuid",
                          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                        }
                      }
                    },
                    "additionalProperties": false
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "updates"
        ],
        "additionalProperties": false
      },
      "DayFileDeleteRequest": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "DayFileResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "dayId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "fileName": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200
              },
              "contentType": {
                "type": "string",
                "maxLength": 150
              },
              "sizeBytes": {
                "type": "integer",
                "minimum": 0,
                "maximum": 26843545600
              },
              "visibility": {
                "type": "object",
                "properties": {
                  "groupIds": {
                    "maxItems": 50,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  },
                  "userIds": {
                    "maxItems": 200,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid",
                      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                    }
                  }
                },
                "additionalProperties": false
              },
              "id": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "orgId": {
                "type": "string",
                "format": "uuid",
                "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "isDeleted": {
                "default": false,
                "type": "boolean"
              },
              "version": {
                "description": "Current day file aggregate version.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "createdAt": {
                "description": "ISO 8601 timestamp when the day file was created.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "createdBy": {
                "description": "User identifier that created the day file.",
                "type": "string"
              },
              "updatedAt": {
                "description": "ISO 8601 timestamp when the day file was last updated.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "updatedBy": {
                "description": "User identifier that last updated the day file.",
                "type": "string"
              },
              "deletedAt": {
                "description": "ISO 8601 timestamp when the day file was deleted.",
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
              },
              "cursor": {
                "description": "Latest event-ledger cursor projected into this day file record.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "dayId",
              "fileName",
              "id",
              "orgId",
              "isDeleted",
              "version",
              "createdAt",
              "createdBy",
              "cursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "additionalProperties": false
      },
      "DayFileListResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "dayId": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "fileName": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200
                },
                "contentType": {
                  "type": "string",
                  "maxLength": 150
                },
                "sizeBytes": {
                  "type": "integer",
                  "minimum": 0,
                  "maximum": 26843545600
                },
                "visibility": {
                  "type": "object",
                  "properties": {
                    "groupIds": {
                      "maxItems": 50,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      }
                    },
                    "userIds": {
                      "maxItems": 200,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "format": "uuid",
                        "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "orgId": {
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                },
                "isDeleted": {
                  "default": false,
                  "type": "boolean"
                },
                "version": {
                  "description": "Current day file aggregate version.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                },
                "createdAt": {
                  "description": "ISO 8601 timestamp when the day file was created.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "createdBy": {
                  "description": "User identifier that created the day file.",
                  "type": "string"
                },
                "updatedAt": {
                  "description": "ISO 8601 timestamp when the day file was last updated.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "updatedBy": {
                  "description": "User identifier that last updated the day file.",
                  "type": "string"
                },
                "deletedAt": {
                  "description": "ISO 8601 timestamp when the day file was deleted.",
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
                },
                "cursor": {
                  "description": "Latest event-ledger cursor projected into this day file record.",
                  "type": "integer",
                  "exclusiveMinimum": true,
                  "maximum": 9007199254740991
                }
              },
              "required": [
                "dayId",
                "fileName",
                "id",
                "orgId",
                "isDeleted",
                "version",
                "createdAt",
                "createdBy",
                "cursor"
              ],
              "additionalProperties": false
            }
          },
          "page": {
            "type": "object",
            "properties": {
              "limit": {
                "description": "Maximum number of records returned in this page.",
                "type": "integer",
                "exclusiveMinimum": true,
                "maximum": 9007199254740991
              },
              "nextCursor": {
                "description": "Cursor to pass as the next request's cursor query parameter, or null when there are no more results.",
                "nullable": true,
                "type": "string"
              }
            },
            "required": [
              "limit",
              "nextCursor"
            ],
            "additionalProperties": false
          },
          "meta": {
            "type": "object",
            "properties": {
              "cursor": {
                "description": "Highest record cursor represented by this response.",
                "nullable": true,
                "type": "number"
              }
            },
            "required": [
              "cursor"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "data",
          "page",
          "meta"
        ],
        "additionalProperties": false
      },
      "MutationReceipt": {
        "type": "object",
        "properties": {
          "commandId": {
            "description": "Command identifier accepted into the RoadOps command ledger.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "resourceId": {
            "description": "Identifier of the resource targeted by the command.",
            "type": "string",
            "format": "uuid",
            "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "resourceType": {
            "description": "Resource type targeted by the command.",
            "type": "string"
          },
          "status": {
            "description": "Command dispatch status.",
            "type": "string",
            "enum": [
              "applied"
            ]
          },
          "aggregateVersion": {
            "description": "Aggregate version produced by the accepted command.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "cursor": {
            "description": "Event-ledger cursor for the accepted update. Refetch until returned records reach this cursor.",
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "links": {
            "type": "object",
            "properties": {
              "refetch": {
                "description": "Relative URL to refetch the affected resource.",
                "type": "string"
              }
            },
            "required": [
              "refetch"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "commandId",
          "resourceId",
          "resourceType",
          "status",
          "aggregateVersion",
          "cursor",
          "links"
        ],
        "additionalProperties": false
      },
      "BatchRequest": {
        "type": "object",
        "properties": {
          "operations": {
            "description": "Ordered mutation operations to dispatch as a batch.",
            "minItems": 1,
            "maxItems": 25,
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "method": {
                  "description": "Mutation method to dispatch.",
                  "type": "string",
                  "enum": [
                    "POST",
                    "PATCH",
                    "DELETE"
                  ]
                },
                "path": {
                  "description": "Developer API path for the nested mutation.",
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 500
                },
                "body": {
                  "description": "JSON body for the nested mutation."
                },
                "idempotencyKey": {
                  "description": "Optional caller-generated UUID used to make this nested mutation retry-safe.",
                  "type": "string",
                  "format": "uuid",
                  "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
                }
              },
              "required": [
                "method",
                "path"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "operations"
        ],
        "additionalProperties": false
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              },
              "details": {}
            },
            "required": [
              "code",
              "message"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "error"
        ],
        "additionalProperties": false
      }
    }
  }
}