Skip to content
Sections

Guest ordering

Get the publicly eligible preorder catalog

GET/public/preorders/{publicHandle}/catalog

Returns the published venue preorder catalog, fulfillment policy, and guest-visible product availability allowed for the requesting origin. Ordinary public and headless discovery retain native channel admission. Requests from the isolated widget frame require a signed widget context bound to the current parent binding and native preorder Resource.

Authentication

x-hallify-widget-context: <HALLIFY_STOREFRONT_WIDGET_CONTEXT>

Short-lived server-authenticated widget presentation proof. It binds the configured frame origin to the exact verified parent binding and connection authority. Widget new demand requires this proof; existing native capabilities remain separate and retain their original authority and deadlines.

Connection guide

Parameters

publicHandlePath · Required

Opaque public channel handle used to resolve one venue’s published guest-facing configuration; it is not a credential.

string
Full definition
{
  "type": "string",
  "example": "example"
}
originHeader · Optional

Actual browser Origin. Ordinary discovery checks the native channel allowed origins; widget discovery requires the isolated frame Origin and signed widget context. The embedding parent is never substituted for this header.

string
Full definition
{
  "type": "string",
  "maxLength": 2048,
  "example": "example"
}
x-hallify-connection-idHeader · Optional

Nonsecret Storefront connection locator. When supplied, catalog discovery checks that exact presentation; widget context also binds the exact connection and parent binding.

string
Full definition
{
  "type": "string",
  "minLength": 1,
  "maxLength": 64,
  "pattern": "^[A-Za-z0-9_-]{1,64}$",
  "example": "example"
}

Responses

200Returns the public preorder channel and its eligible catalog projection.
PublicPreorderCatalogDto
Full definition
{
  "$ref": "#/components/schemas/PublicPreorderCatalogDto"
}
Example response · 200 · application/json
{
  "venueId": "0604de3a-da74-4ad5-89f6-2dfe000d5391",
  "salesChannelId": "ff0fa725-ba44-4e7a-82bb-a15650e0a0cc",
  "menuVersionId": "490ccfcb-caa6-472e-836a-a8416e8cee92",
  "versionNumber": 1,
  "graphHash": "menu-cost-v1.graph.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "currency": "GEL",
  "timeZone": "Asia/Tbilisi",
  "publishedAt": "2026-01-15T12:00:00.000Z",
  "servedAt": "2026-01-15T12:00:00.000Z",
  "categories": [
    {
      "id": "fc26c88d-096a-4835-8f3e-cb8e09f3a6ae",
      "menuCategoryId": null,
      "name": "Example name",
      "sortOrder": 1,
      "items": [
        {
          "id": "f2af74de-208d-4d87-807b-46e025174e34",
          "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
          "name": "Example name",
          "description": null,
          "price": 0,
          "allergenCodes": [
            "GLUTEN"
          ],
          "isAlcoholic": true,
          "modifiers": [
            {
              "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
              "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
              "name": "Example name",
              "isRequired": true,
              "maxSelections": 0,
              "options": [
                {
                  "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                  "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                  "name": "Example name",
                  "priceDelta": 0,
                  "isDefault": true,
                  "allergenCodes": [
                    "GLUTEN"
                  ]
                }
              ]
            }
          ],
          "variants": [
            {
              "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
              "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
              "name": "Example name",
              "price": 0,
              "allergenCodes": [
                "GLUTEN"
              ],
              "isAlcoholic": true,
              "modifiers": [
                {
                  "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                  "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                  "name": "Example name",
                  "isRequired": true,
                  "maxSelections": 0,
                  "options": [
                    {
                      "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                      "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                      "name": "Example name",
                      "priceDelta": 0,
                      "isDefault": true,
                      "allergenCodes": [
                        "GLUTEN"
                      ]
                    }
                  ]
                }
              ],
              "availability": {
                "available": true,
                "reason": "AVAILABLE"
              }
            }
          ],
          "structure": {
            "executionMode": "DIRECT_ITEM",
            "configuratorMode": "DIRECT_ITEM",
            "pricingBehavior": "BASE_PRICE",
            "sellableVersions": "NONE",
            "groups": [
              {
                "id": "example-id",
                "name": "Example name",
                "sourceType": "CATALOG_ITEMS",
                "mode": "FIXED_CONTENTS",
                "minSelections": 0,
                "maxSelections": 0,
                "required": true,
                "choices": [
                  {
                    "id": "example-id",
                    "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
                    "name": "Example name",
                    "quantity": 1,
                    "upcharge": 0,
                    "isDefault": true,
                    "isIncluded": true,
                    "variants": [
                      {
                        "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
                        "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
                        "name": "Example name",
                        "price": 0,
                        "allergenCodes": [
                          "GLUTEN"
                        ],
                        "isAlcoholic": true,
                        "modifiers": [
                          {
                            "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                            "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                            "name": "Example name",
                            "isRequired": true,
                            "maxSelections": 0,
                            "options": [
                              {
                                "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                                "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                                "name": "Example name",
                                "priceDelta": 0,
                                "isDefault": true,
                                "allergenCodes": [
                                  "GLUTEN"
                                ]
                              }
                            ]
                          }
                        ],
                        "availability": {
                          "available": true,
                          "reason": "AVAILABLE"
                        }
                      }
                    ],
                    "modifiers": [
                      {
                        "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                        "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                        "name": "Example name",
                        "isRequired": true,
                        "maxSelections": 0,
                        "options": [
                          {
                            "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                            "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                            "name": "Example name",
                            "priceDelta": 0,
                            "isDefault": true,
                            "allergenCodes": [
                              "GLUTEN"
                            ]
                          }
                        ]
                      }
                    ],
                    "availability": {
                      "available": true,
                      "reason": "AVAILABLE"
                    }
                  }
                ],
                "modifierGroup": null
              }
            ],
            "courses": [
              {
                "groupId": "example",
                "name": "Example name",
                "sequence": 0
              }
            ],
            "measuredPolicy": null,
            "preorderPolicy": null
          },
          "availability": {
            "available": true,
            "reason": "AVAILABLE"
          },
          "sortOrder": 1,
          "preorderEligibility": {
            "serviceModes": [
              "DINE_IN"
            ],
            "minimumQuantity": 1,
            "maximumQuantity": null,
            "minimumLeadMinutes": null,
            "bookingHorizonDays": null
          }
        }
      ]
    }
  ],
  "fulfillmentOptions": [
    {
      "serviceMode": "PICKUP",
      "timingModes": [
        "ASAP"
      ]
    }
  ],
  "publicHandle": "example",
  "venue": {
    "id": "90513e6e-3429-4349-8afd-9c5ad89daff8",
    "name": "Example name",
    "timeZone": "Asia/Tbilisi",
    "currency": "GEL"
  },
  "termsVersion": "example",
  "privacyVersion": "example",
  "allowGuestPayments": true
}
404The native channel, requested origin, widget proof or exact presentation is unavailable. Error codes: PREORDER_PUBLIC_RESOURCE_NOT_FOUND, STOREFRONT_PRESENTATION_UNAVAILABLE.
TranslatedErrorDto
Full definition
{
  "$ref": "#/components/schemas/TranslatedErrorDto"
}
Example response · 404 · application/json
{
  "statusCode": 404,
  "error": "errors:http.notFound",
  "code": "HTTP_NOT_FOUND",
  "message": "errors:http.notFound",
  "translationKey": "errors:http.notFound"
}
503The published menu cannot be safely projected or widget authority configuration is unavailable. Error codes: PUBLIC_MENU_UNAVAILABLE, STOREFRONT_WIDGET_UNAVAILABLE.
TranslatedErrorDto
Full definition
{
  "$ref": "#/components/schemas/TranslatedErrorDto"
}
Example response · 503 · application/json
{
  "statusCode": 503,
  "error": "errors:http.serviceUnavailable",
  "code": "HTTP_SERVICE_UNAVAILABLE",
  "message": "errors:http.serviceUnavailable",
  "translationKey": "errors:http.serviceUnavailable"
}

Schemas

PublicPreorderCatalogDto

Strict public preorder catalog bound to one active native channel and its exact published menu.

venueIdRequired

Native venue UUID owning this menu.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Native venue UUID owning this menu.",
  "example": "0604de3a-da74-4ad5-89f6-2dfe000d5391"
}
salesChannelIdRequired

Exact active sales channel UUID used for every published read.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Exact active sales channel UUID used for every published read.",
  "example": "ff0fa725-ba44-4e7a-82bb-a15650e0a0cc"
}
menuVersionIdRequired

Current published menu version UUID for this venue and sales channel.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Current published menu version UUID for this venue and sales channel.",
  "example": "490ccfcb-caa6-472e-836a-a8416e8cee92"
}
versionNumberRequired

Native published menu version number.

integer
Full definition
{
  "type": "integer",
  "minimum": 1,
  "description": "Native published menu version number.",
  "example": 1
}
graphHashRequired

Opaque published graph token required by native guest quote requests; no raw graph hash is exposed.

string
Full definition
{
  "type": "string",
  "pattern": "^menu-cost-v1\\.graph\\.[A-Za-z0-9_-]{43}$",
  "description": "Opaque published graph token required by native guest quote requests; no raw graph hash is exposed.",
  "example": "menu-cost-v1.graph.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}
currencyRequired

Single venue currency used by every published selling price in this menu.

string
Full definition
{
  "type": "string",
  "pattern": "^[A-Z]{3}$",
  "description": "Single venue currency used by every published selling price in this menu.",
  "example": "GEL"
}
timeZoneRequired

Venue IANA timezone used by published package and fulfillment rules.

string
Full definition
{
  "type": "string",
  "description": "Venue IANA timezone used by published package and fulfillment rules.",
  "example": "Asia/Tbilisi"
}
publishedAtRequired

RFC 3339 instant at which the active menu version was published.

string · date-time
Full definition
{
  "type": "string",
  "format": "date-time",
  "description": "RFC 3339 instant at which the active menu version was published.",
  "example": "2026-01-15T12:00:00.000Z"
}
servedAtRequired

RFC 3339 instant used to evaluate current public availability.

string · date-time
Full definition
{
  "type": "string",
  "format": "date-time",
  "description": "RFC 3339 instant used to evaluate current public availability.",
  "example": "2026-01-15T12:00:00.000Z"
}
categoriesRequired

Typed published categories filtered by native preorder eligibility.

array
Full definition
{
  "maxItems": 500,
  "description": "Typed published categories filtered by native preorder eligibility.",
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/PublicPreorderCatalogCategoryDto"
  },
  "example": [
    {
      "id": "fc26c88d-096a-4835-8f3e-cb8e09f3a6ae",
      "menuCategoryId": null,
      "name": "Example name",
      "sortOrder": 1,
      "items": [
        {
          "id": "f2af74de-208d-4d87-807b-46e025174e34",
          "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
          "name": "Example name",
          "description": null,
          "price": 0,
          "allergenCodes": [
            "GLUTEN"
          ],
          "isAlcoholic": true,
          "modifiers": [
            {
              "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
              "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
              "name": "Example name",
              "isRequired": true,
              "maxSelections": 0,
              "options": [
                {
                  "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                  "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                  "name": "Example name",
                  "priceDelta": 0,
                  "isDefault": true,
                  "allergenCodes": [
                    "GLUTEN"
                  ]
                }
              ]
            }
          ],
          "variants": [
            {
              "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
              "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
              "name": "Example name",
              "price": 0,
              "allergenCodes": [
                "GLUTEN"
              ],
              "isAlcoholic": true,
              "modifiers": [
                {
                  "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                  "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                  "name": "Example name",
                  "isRequired": true,
                  "maxSelections": 0,
                  "options": [
                    {
                      "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                      "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                      "name": "Example name",
                      "priceDelta": 0,
                      "isDefault": true,
                      "allergenCodes": [
                        "GLUTEN"
                      ]
                    }
                  ]
                }
              ],
              "availability": {
                "available": true,
                "reason": "AVAILABLE"
              }
            }
          ],
          "structure": {
            "executionMode": "DIRECT_ITEM",
            "configuratorMode": "DIRECT_ITEM",
            "pricingBehavior": "BASE_PRICE",
            "sellableVersions": "NONE",
            "groups": [
              {
                "id": "example-id",
                "name": "Example name",
                "sourceType": "CATALOG_ITEMS",
                "mode": "FIXED_CONTENTS",
                "minSelections": 0,
                "maxSelections": 0,
                "required": true,
                "choices": [
                  {
                    "id": "example-id",
                    "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
                    "name": "Example name",
                    "quantity": 1,
                    "upcharge": 0,
                    "isDefault": true,
                    "isIncluded": true,
                    "variants": [
                      {
                        "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
                        "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
                        "name": "Example name",
                        "price": 0,
                        "allergenCodes": [
                          "GLUTEN"
                        ],
                        "isAlcoholic": true,
                        "modifiers": [
                          {
                            "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                            "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                            "name": "Example name",
                            "isRequired": true,
                            "maxSelections": 0,
                            "options": [
                              {
                                "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                                "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                                "name": "Example name",
                                "priceDelta": 0,
                                "isDefault": true,
                                "allergenCodes": [
                                  "GLUTEN"
                                ]
                              }
                            ]
                          }
                        ],
                        "availability": {
                          "available": true,
                          "reason": "AVAILABLE"
                        }
                      }
                    ],
                    "modifiers": [
                      {
                        "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                        "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                        "name": "Example name",
                        "isRequired": true,
                        "maxSelections": 0,
                        "options": [
                          {
                            "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                            "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                            "name": "Example name",
                            "priceDelta": 0,
                            "isDefault": true,
                            "allergenCodes": [
                              "GLUTEN"
                            ]
                          }
                        ]
                      }
                    ],
                    "availability": {
                      "available": true,
                      "reason": "AVAILABLE"
                    }
                  }
                ],
                "modifierGroup": null
              }
            ],
            "courses": [
              {
                "groupId": "example",
                "name": "Example name",
                "sequence": 0
              }
            ],
            "measuredPolicy": null,
            "preorderPolicy": null
          },
          "availability": {
            "available": true,
            "reason": "AVAILABLE"
          },
          "sortOrder": 1,
          "preorderEligibility": {
            "serviceModes": [
              "DINE_IN"
            ],
            "minimumQuantity": 1,
            "maximumQuantity": null,
            "minimumLeadMinutes": null,
            "bookingHorizonDays": null
          }
        }
      ]
    }
  ]
}
deliveryMethodsOptional

Currently usable delivery methods under the active venue policy. These choices expose no provider configuration and reserve no provider quote.

array
Full definition
{
  "type": "array",
  "maxItems": 3,
  "description": "Currently usable delivery methods under the active venue policy. These choices expose no provider configuration and reserve no provider quote.",
  "items": {
    "type": "string",
    "enum": [
      "SELF",
      "UBER_DIRECT",
      "WOLT_DRIVE"
    ],
    "example": "SELF"
  },
  "example": [
    "SELF"
  ]
}
fulfillmentOptionsRequired

Off-premise service and timing choices supported by active native fulfillment policies. An empty list means no public PICKUP or DELIVERY ordering policy is currently configured.

array
Full definition
{
  "maxItems": 2,
  "description": "Off-premise service and timing choices supported by active native fulfillment policies. An empty list means no public PICKUP or DELIVERY ordering policy is currently configured.",
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/PublicPreorderFulfillmentOptionDto"
  },
  "example": [
    {
      "serviceMode": "PICKUP",
      "timingModes": [
        "ASAP"
      ]
    }
  ]
}
publicHandleRequired

Public discovery handle of the active native preorder channel.

string
Full definition
{
  "type": "string",
  "description": "Public discovery handle of the active native preorder channel.",
  "example": "example"
}
venueRequired

Explicit public venue identity without staff or organization metadata.

allOf
Full definition
{
  "description": "Explicit public venue identity without staff or organization metadata.",
  "allOf": [
    {
      "$ref": "#/components/schemas/PublicPreorderCatalogVenueDto"
    }
  ],
  "example": {
    "id": "90513e6e-3429-4349-8afd-9c5ad89daff8",
    "name": "Example name",
    "timeZone": "Asia/Tbilisi",
    "currency": "GEL"
  }
}
termsVersionRequired

Current terms version required by a new public preorder draft.

string
Full definition
{
  "type": "string",
  "description": "Current terms version required by a new public preorder draft.",
  "example": "example"
}
privacyVersionRequired

Current privacy version required by a new public preorder draft.

string
Full definition
{
  "type": "string",
  "description": "Current privacy version required by a new public preorder draft.",
  "example": "example"
}
allowGuestPaymentsRequired

Whether this public channel currently permits guest payment preparation. Native authority and financial consent are still required.

boolean
Full definition
{
  "type": "boolean",
  "description": "Whether this public channel currently permits guest payment preparation. Native authority and financial consent are still required.",
  "example": true
}
Full definition
{
  "type": "object",
  "properties": {
    "venueId": {
      "type": "string",
      "format": "uuid",
      "description": "Native venue UUID owning this menu.",
      "example": "0604de3a-da74-4ad5-89f6-2dfe000d5391"
    },
    "salesChannelId": {
      "type": "string",
      "format": "uuid",
      "description": "Exact active sales channel UUID used for every published read.",
      "example": "ff0fa725-ba44-4e7a-82bb-a15650e0a0cc"
    },
    "menuVersionId": {
      "type": "string",
      "format": "uuid",
      "description": "Current published menu version UUID for this venue and sales channel.",
      "example": "490ccfcb-caa6-472e-836a-a8416e8cee92"
    },
    "versionNumber": {
      "type": "integer",
      "minimum": 1,
      "description": "Native published menu version number.",
      "example": 1
    },
    "graphHash": {
      "type": "string",
      "pattern": "^menu-cost-v1\\.graph\\.[A-Za-z0-9_-]{43}$",
      "description": "Opaque published graph token required by native guest quote requests; no raw graph hash is exposed.",
      "example": "menu-cost-v1.graph.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Z]{3}$",
      "description": "Single venue currency used by every published selling price in this menu.",
      "example": "GEL"
    },
    "timeZone": {
      "type": "string",
      "description": "Venue IANA timezone used by published package and fulfillment rules.",
      "example": "Asia/Tbilisi"
    },
    "publishedAt": {
      "type": "string",
      "format": "date-time",
      "description": "RFC 3339 instant at which the active menu version was published.",
      "example": "2026-01-15T12:00:00.000Z"
    },
    "servedAt": {
      "type": "string",
      "format": "date-time",
      "description": "RFC 3339 instant used to evaluate current public availability.",
      "example": "2026-01-15T12:00:00.000Z"
    },
    "categories": {
      "maxItems": 500,
      "description": "Typed published categories filtered by native preorder eligibility.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PublicPreorderCatalogCategoryDto"
      },
      "example": [
        {
          "id": "fc26c88d-096a-4835-8f3e-cb8e09f3a6ae",
          "menuCategoryId": null,
          "name": "Example name",
          "sortOrder": 1,
          "items": [
            {
              "id": "f2af74de-208d-4d87-807b-46e025174e34",
              "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
              "name": "Example name",
              "description": null,
              "price": 0,
              "allergenCodes": [
                "GLUTEN"
              ],
              "isAlcoholic": true,
              "modifiers": [
                {
                  "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                  "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                  "name": "Example name",
                  "isRequired": true,
                  "maxSelections": 0,
                  "options": [
                    {
                      "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                      "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                      "name": "Example name",
                      "priceDelta": 0,
                      "isDefault": true,
                      "allergenCodes": [
                        "GLUTEN"
                      ]
                    }
                  ]
                }
              ],
              "variants": [
                {
                  "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
                  "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
                  "name": "Example name",
                  "price": 0,
                  "allergenCodes": [
                    "GLUTEN"
                  ],
                  "isAlcoholic": true,
                  "modifiers": [
                    {
                      "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                      "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                      "name": "Example name",
                      "isRequired": true,
                      "maxSelections": 0,
                      "options": [
                        {
                          "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                          "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                          "name": "Example name",
                          "priceDelta": 0,
                          "isDefault": true,
                          "allergenCodes": [
                            "GLUTEN"
                          ]
                        }
                      ]
                    }
                  ],
                  "availability": {
                    "available": true,
                    "reason": "AVAILABLE"
                  }
                }
              ],
              "structure": {
                "executionMode": "DIRECT_ITEM",
                "configuratorMode": "DIRECT_ITEM",
                "pricingBehavior": "BASE_PRICE",
                "sellableVersions": "NONE",
                "groups": [
                  {
                    "id": "example-id",
                    "name": "Example name",
                    "sourceType": "CATALOG_ITEMS",
                    "mode": "FIXED_CONTENTS",
                    "minSelections": 0,
                    "maxSelections": 0,
                    "required": true,
                    "choices": [
                      {
                        "id": "example-id",
                        "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
                        "name": "Example name",
                        "quantity": 1,
                        "upcharge": 0,
                        "isDefault": true,
                        "isIncluded": true,
                        "variants": [
                          {
                            "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
                            "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
                            "name": "Example name",
                            "price": 0,
                            "allergenCodes": [
                              "GLUTEN"
                            ],
                            "isAlcoholic": true,
                            "modifiers": [
                              {
                                "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                                "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                                "name": "Example name",
                                "isRequired": true,
                                "maxSelections": 0,
                                "options": [
                                  {
                                    "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                                    "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                                    "name": "Example name",
                                    "priceDelta": 0,
                                    "isDefault": true,
                                    "allergenCodes": [
                                      "GLUTEN"
                                    ]
                                  }
                                ]
                              }
                            ],
                            "availability": {
                              "available": true,
                              "reason": "AVAILABLE"
                            }
                          }
                        ],
                        "modifiers": [
                          {
                            "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                            "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                            "name": "Example name",
                            "isRequired": true,
                            "maxSelections": 0,
                            "options": [
                              {
                                "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                                "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                                "name": "Example name",
                                "priceDelta": 0,
                                "isDefault": true,
                                "allergenCodes": [
                                  "GLUTEN"
                                ]
                              }
                            ]
                          }
                        ],
                        "availability": {
                          "available": true,
                          "reason": "AVAILABLE"
                        }
                      }
                    ],
                    "modifierGroup": null
                  }
                ],
                "courses": [
                  {
                    "groupId": "example",
                    "name": "Example name",
                    "sequence": 0
                  }
                ],
                "measuredPolicy": null,
                "preorderPolicy": null
              },
              "availability": {
                "available": true,
                "reason": "AVAILABLE"
              },
              "sortOrder": 1,
              "preorderEligibility": {
                "serviceModes": [
                  "DINE_IN"
                ],
                "minimumQuantity": 1,
                "maximumQuantity": null,
                "minimumLeadMinutes": null,
                "bookingHorizonDays": null
              }
            }
          ]
        }
      ]
    },
    "deliveryMethods": {
      "type": "array",
      "maxItems": 3,
      "description": "Currently usable delivery methods under the active venue policy. These choices expose no provider configuration and reserve no provider quote.",
      "items": {
        "type": "string",
        "enum": [
          "SELF",
          "UBER_DIRECT",
          "WOLT_DRIVE"
        ],
        "example": "SELF"
      },
      "example": [
        "SELF"
      ]
    },
    "fulfillmentOptions": {
      "maxItems": 2,
      "description": "Off-premise service and timing choices supported by active native fulfillment policies. An empty list means no public PICKUP or DELIVERY ordering policy is currently configured.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PublicPreorderFulfillmentOptionDto"
      },
      "example": [
        {
          "serviceMode": "PICKUP",
          "timingModes": [
            "ASAP"
          ]
        }
      ]
    },
    "publicHandle": {
      "type": "string",
      "description": "Public discovery handle of the active native preorder channel.",
      "example": "example"
    },
    "venue": {
      "description": "Explicit public venue identity without staff or organization metadata.",
      "allOf": [
        {
          "$ref": "#/components/schemas/PublicPreorderCatalogVenueDto"
        }
      ],
      "example": {
        "id": "90513e6e-3429-4349-8afd-9c5ad89daff8",
        "name": "Example name",
        "timeZone": "Asia/Tbilisi",
        "currency": "GEL"
      }
    },
    "termsVersion": {
      "type": "string",
      "description": "Current terms version required by a new public preorder draft.",
      "example": "example"
    },
    "privacyVersion": {
      "type": "string",
      "description": "Current privacy version required by a new public preorder draft.",
      "example": "example"
    },
    "allowGuestPayments": {
      "type": "boolean",
      "description": "Whether this public channel currently permits guest payment preparation. Native authority and financial consent are still required.",
      "example": true
    }
  },
  "description": "Strict public preorder catalog bound to one active native channel and its exact published menu.",
  "required": [
    "venueId",
    "salesChannelId",
    "menuVersionId",
    "versionNumber",
    "graphHash",
    "currency",
    "timeZone",
    "publishedAt",
    "servedAt",
    "categories",
    "fulfillmentOptions",
    "publicHandle",
    "venue",
    "termsVersion",
    "privacyVersion",
    "allowGuestPayments"
  ],
  "example": {
    "venueId": "0604de3a-da74-4ad5-89f6-2dfe000d5391",
    "salesChannelId": "ff0fa725-ba44-4e7a-82bb-a15650e0a0cc",
    "menuVersionId": "490ccfcb-caa6-472e-836a-a8416e8cee92",
    "versionNumber": 1,
    "graphHash": "menu-cost-v1.graph.aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "currency": "GEL",
    "timeZone": "Asia/Tbilisi",
    "publishedAt": "2026-01-15T12:00:00.000Z",
    "servedAt": "2026-01-15T12:00:00.000Z",
    "categories": [
      {
        "id": "fc26c88d-096a-4835-8f3e-cb8e09f3a6ae",
        "menuCategoryId": null,
        "name": "Example name",
        "sortOrder": 1,
        "items": [
          {
            "id": "f2af74de-208d-4d87-807b-46e025174e34",
            "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
            "name": "Example name",
            "description": null,
            "price": 0,
            "allergenCodes": [
              "GLUTEN"
            ],
            "isAlcoholic": true,
            "modifiers": [
              {
                "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                "name": "Example name",
                "isRequired": true,
                "maxSelections": 0,
                "options": [
                  {
                    "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                    "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                    "name": "Example name",
                    "priceDelta": 0,
                    "isDefault": true,
                    "allergenCodes": [
                      "GLUTEN"
                    ]
                  }
                ]
              }
            ],
            "variants": [
              {
                "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
                "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
                "name": "Example name",
                "price": 0,
                "allergenCodes": [
                  "GLUTEN"
                ],
                "isAlcoholic": true,
                "modifiers": [
                  {
                    "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                    "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                    "name": "Example name",
                    "isRequired": true,
                    "maxSelections": 0,
                    "options": [
                      {
                        "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                        "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                        "name": "Example name",
                        "priceDelta": 0,
                        "isDefault": true,
                        "allergenCodes": [
                          "GLUTEN"
                        ]
                      }
                    ]
                  }
                ],
                "availability": {
                  "available": true,
                  "reason": "AVAILABLE"
                }
              }
            ],
            "structure": {
              "executionMode": "DIRECT_ITEM",
              "configuratorMode": "DIRECT_ITEM",
              "pricingBehavior": "BASE_PRICE",
              "sellableVersions": "NONE",
              "groups": [
                {
                  "id": "example-id",
                  "name": "Example name",
                  "sourceType": "CATALOG_ITEMS",
                  "mode": "FIXED_CONTENTS",
                  "minSelections": 0,
                  "maxSelections": 0,
                  "required": true,
                  "choices": [
                    {
                      "id": "example-id",
                      "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
                      "name": "Example name",
                      "quantity": 1,
                      "upcharge": 0,
                      "isDefault": true,
                      "isIncluded": true,
                      "variants": [
                        {
                          "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
                          "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
                          "name": "Example name",
                          "price": 0,
                          "allergenCodes": [
                            "GLUTEN"
                          ],
                          "isAlcoholic": true,
                          "modifiers": [
                            {
                              "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                              "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                              "name": "Example name",
                              "isRequired": true,
                              "maxSelections": 0,
                              "options": [
                                {
                                  "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                                  "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                                  "name": "Example name",
                                  "priceDelta": 0,
                                  "isDefault": true,
                                  "allergenCodes": [
                                    "GLUTEN"
                                  ]
                                }
                              ]
                            }
                          ],
                          "availability": {
                            "available": true,
                            "reason": "AVAILABLE"
                          }
                        }
                      ],
                      "modifiers": [
                        {
                          "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                          "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                          "name": "Example name",
                          "isRequired": true,
                          "maxSelections": 0,
                          "options": [
                            {
                              "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                              "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                              "name": "Example name",
                              "priceDelta": 0,
                              "isDefault": true,
                              "allergenCodes": [
                                "GLUTEN"
                              ]
                            }
                          ]
                        }
                      ],
                      "availability": {
                        "available": true,
                        "reason": "AVAILABLE"
                      }
                    }
                  ],
                  "modifierGroup": null
                }
              ],
              "courses": [
                {
                  "groupId": "example",
                  "name": "Example name",
                  "sequence": 0
                }
              ],
              "measuredPolicy": null,
              "preorderPolicy": null
            },
            "availability": {
              "available": true,
              "reason": "AVAILABLE"
            },
            "sortOrder": 1,
            "preorderEligibility": {
              "serviceModes": [
                "DINE_IN"
              ],
              "minimumQuantity": 1,
              "maximumQuantity": null,
              "minimumLeadMinutes": null,
              "bookingHorizonDays": null
            }
          }
        ]
      }
    ],
    "fulfillmentOptions": [
      {
        "serviceMode": "PICKUP",
        "timingModes": [
          "ASAP"
        ]
      }
    ],
    "publicHandle": "example",
    "venue": {
      "id": "90513e6e-3429-4349-8afd-9c5ad89daff8",
      "name": "Example name",
      "timeZone": "Asia/Tbilisi",
      "currency": "GEL"
    },
    "termsVersion": "example",
    "privacyVersion": "example",
    "allowGuestPayments": true
  }
}
PublicPreorderCatalogCategoryDto

Published category containing typed preorder-eligible guest items.

idRequired

Published category snapshot UUID.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Published category snapshot UUID.",
  "example": "fc26c88d-096a-4835-8f3e-cb8e09f3a6ae"
}
menuCategoryIdRequired

Stable menu category UUID, or null when the published category has no live catalog identity.

string · uuid · null
Full definition
{
  "type": "string",
  "format": "uuid",
  "nullable": true,
  "description": "Stable menu category UUID, or null when the published category has no live catalog identity.",
  "example": "cb5f7601-2b73-4705-8ddc-9f32947c3200"
}
nameRequired

Published guest-facing category name.

string
Full definition
{
  "type": "string",
  "description": "Published guest-facing category name.",
  "example": "Example name"
}
sortOrderRequired

Published category display order.

integer
Full definition
{
  "type": "integer",
  "description": "Published category display order.",
  "example": 1
}
itemsRequired

Published public items that have native preorder eligibility.

array
Full definition
{
  "maxItems": 500,
  "description": "Published public items that have native preorder eligibility.",
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/PublicPreorderCatalogItemDto"
  },
  "example": [
    {
      "id": "f2af74de-208d-4d87-807b-46e025174e34",
      "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
      "name": "Example name",
      "description": null,
      "price": 0,
      "allergenCodes": [
        "GLUTEN"
      ],
      "isAlcoholic": true,
      "modifiers": [
        {
          "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
          "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
          "name": "Example name",
          "isRequired": true,
          "maxSelections": 0,
          "options": [
            {
              "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
              "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
              "name": "Example name",
              "priceDelta": 0,
              "isDefault": true,
              "allergenCodes": [
                "GLUTEN"
              ]
            }
          ]
        }
      ],
      "variants": [
        {
          "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
          "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
          "name": "Example name",
          "price": 0,
          "allergenCodes": [
            "GLUTEN"
          ],
          "isAlcoholic": true,
          "modifiers": [
            {
              "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
              "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
              "name": "Example name",
              "isRequired": true,
              "maxSelections": 0,
              "options": [
                {
                  "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                  "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                  "name": "Example name",
                  "priceDelta": 0,
                  "isDefault": true,
                  "allergenCodes": [
                    "GLUTEN"
                  ]
                }
              ]
            }
          ],
          "availability": {
            "available": true,
            "reason": "AVAILABLE"
          }
        }
      ],
      "structure": {
        "executionMode": "DIRECT_ITEM",
        "configuratorMode": "DIRECT_ITEM",
        "pricingBehavior": "BASE_PRICE",
        "sellableVersions": "NONE",
        "groups": [
          {
            "id": "example-id",
            "name": "Example name",
            "sourceType": "CATALOG_ITEMS",
            "mode": "FIXED_CONTENTS",
            "minSelections": 0,
            "maxSelections": 0,
            "required": true,
            "choices": [
              {
                "id": "example-id",
                "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
                "name": "Example name",
                "quantity": 1,
                "upcharge": 0,
                "isDefault": true,
                "isIncluded": true,
                "variants": [
                  {
                    "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
                    "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
                    "name": "Example name",
                    "price": 0,
                    "allergenCodes": [
                      "GLUTEN"
                    ],
                    "isAlcoholic": true,
                    "modifiers": [
                      {
                        "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                        "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                        "name": "Example name",
                        "isRequired": true,
                        "maxSelections": 0,
                        "options": [
                          {
                            "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                            "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                            "name": "Example name",
                            "priceDelta": 0,
                            "isDefault": true,
                            "allergenCodes": [
                              "GLUTEN"
                            ]
                          }
                        ]
                      }
                    ],
                    "availability": {
                      "available": true,
                      "reason": "AVAILABLE"
                    }
                  }
                ],
                "modifiers": [
                  {
                    "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                    "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                    "name": "Example name",
                    "isRequired": true,
                    "maxSelections": 0,
                    "options": [
                      {
                        "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                        "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                        "name": "Example name",
                        "priceDelta": 0,
                        "isDefault": true,
                        "allergenCodes": [
                          "GLUTEN"
                        ]
                      }
                    ]
                  }
                ],
                "availability": {
                  "available": true,
                  "reason": "AVAILABLE"
                }
              }
            ],
            "modifierGroup": null
          }
        ],
        "courses": [
          {
            "groupId": "example",
            "name": "Example name",
            "sequence": 0
          }
        ],
        "measuredPolicy": null,
        "preorderPolicy": null
      },
      "availability": {
        "available": true,
        "reason": "AVAILABLE"
      },
      "sortOrder": 1,
      "preorderEligibility": {
        "serviceModes": [
          "DINE_IN"
        ],
        "minimumQuantity": 1,
        "maximumQuantity": null,
        "minimumLeadMinutes": null,
        "bookingHorizonDays": null
      }
    }
  ]
}
Full definition
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Published category snapshot UUID.",
      "example": "fc26c88d-096a-4835-8f3e-cb8e09f3a6ae"
    },
    "menuCategoryId": {
      "type": "string",
      "format": "uuid",
      "nullable": true,
      "description": "Stable menu category UUID, or null when the published category has no live catalog identity.",
      "example": "cb5f7601-2b73-4705-8ddc-9f32947c3200"
    },
    "name": {
      "type": "string",
      "description": "Published guest-facing category name.",
      "example": "Example name"
    },
    "sortOrder": {
      "type": "integer",
      "description": "Published category display order.",
      "example": 1
    },
    "items": {
      "maxItems": 500,
      "description": "Published public items that have native preorder eligibility.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PublicPreorderCatalogItemDto"
      },
      "example": [
        {
          "id": "f2af74de-208d-4d87-807b-46e025174e34",
          "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
          "name": "Example name",
          "description": null,
          "price": 0,
          "allergenCodes": [
            "GLUTEN"
          ],
          "isAlcoholic": true,
          "modifiers": [
            {
              "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
              "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
              "name": "Example name",
              "isRequired": true,
              "maxSelections": 0,
              "options": [
                {
                  "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                  "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                  "name": "Example name",
                  "priceDelta": 0,
                  "isDefault": true,
                  "allergenCodes": [
                    "GLUTEN"
                  ]
                }
              ]
            }
          ],
          "variants": [
            {
              "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
              "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
              "name": "Example name",
              "price": 0,
              "allergenCodes": [
                "GLUTEN"
              ],
              "isAlcoholic": true,
              "modifiers": [
                {
                  "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                  "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                  "name": "Example name",
                  "isRequired": true,
                  "maxSelections": 0,
                  "options": [
                    {
                      "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                      "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                      "name": "Example name",
                      "priceDelta": 0,
                      "isDefault": true,
                      "allergenCodes": [
                        "GLUTEN"
                      ]
                    }
                  ]
                }
              ],
              "availability": {
                "available": true,
                "reason": "AVAILABLE"
              }
            }
          ],
          "structure": {
            "executionMode": "DIRECT_ITEM",
            "configuratorMode": "DIRECT_ITEM",
            "pricingBehavior": "BASE_PRICE",
            "sellableVersions": "NONE",
            "groups": [
              {
                "id": "example-id",
                "name": "Example name",
                "sourceType": "CATALOG_ITEMS",
                "mode": "FIXED_CONTENTS",
                "minSelections": 0,
                "maxSelections": 0,
                "required": true,
                "choices": [
                  {
                    "id": "example-id",
                    "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
                    "name": "Example name",
                    "quantity": 1,
                    "upcharge": 0,
                    "isDefault": true,
                    "isIncluded": true,
                    "variants": [
                      {
                        "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
                        "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
                        "name": "Example name",
                        "price": 0,
                        "allergenCodes": [
                          "GLUTEN"
                        ],
                        "isAlcoholic": true,
                        "modifiers": [
                          {
                            "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                            "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                            "name": "Example name",
                            "isRequired": true,
                            "maxSelections": 0,
                            "options": [
                              {
                                "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                                "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                                "name": "Example name",
                                "priceDelta": 0,
                                "isDefault": true,
                                "allergenCodes": [
                                  "GLUTEN"
                                ]
                              }
                            ]
                          }
                        ],
                        "availability": {
                          "available": true,
                          "reason": "AVAILABLE"
                        }
                      }
                    ],
                    "modifiers": [
                      {
                        "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                        "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                        "name": "Example name",
                        "isRequired": true,
                        "maxSelections": 0,
                        "options": [
                          {
                            "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                            "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                            "name": "Example name",
                            "priceDelta": 0,
                            "isDefault": true,
                            "allergenCodes": [
                              "GLUTEN"
                            ]
                          }
                        ]
                      }
                    ],
                    "availability": {
                      "available": true,
                      "reason": "AVAILABLE"
                    }
                  }
                ],
                "modifierGroup": null
              }
            ],
            "courses": [
              {
                "groupId": "example",
                "name": "Example name",
                "sequence": 0
              }
            ],
            "measuredPolicy": null,
            "preorderPolicy": null
          },
          "availability": {
            "available": true,
            "reason": "AVAILABLE"
          },
          "sortOrder": 1,
          "preorderEligibility": {
            "serviceModes": [
              "DINE_IN"
            ],
            "minimumQuantity": 1,
            "maximumQuantity": null,
            "minimumLeadMinutes": null,
            "bookingHorizonDays": null
          }
        }
      ]
    }
  },
  "description": "Published category containing typed preorder-eligible guest items.",
  "required": [
    "id",
    "menuCategoryId",
    "name",
    "sortOrder",
    "items"
  ],
  "example": {
    "id": "fc26c88d-096a-4835-8f3e-cb8e09f3a6ae",
    "menuCategoryId": null,
    "name": "Example name",
    "sortOrder": 1,
    "items": [
      {
        "id": "f2af74de-208d-4d87-807b-46e025174e34",
        "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
        "name": "Example name",
        "description": null,
        "price": 0,
        "allergenCodes": [
          "GLUTEN"
        ],
        "isAlcoholic": true,
        "modifiers": [
          {
            "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
            "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
            "name": "Example name",
            "isRequired": true,
            "maxSelections": 0,
            "options": [
              {
                "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                "name": "Example name",
                "priceDelta": 0,
                "isDefault": true,
                "allergenCodes": [
                  "GLUTEN"
                ]
              }
            ]
          }
        ],
        "variants": [
          {
            "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
            "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
            "name": "Example name",
            "price": 0,
            "allergenCodes": [
              "GLUTEN"
            ],
            "isAlcoholic": true,
            "modifiers": [
              {
                "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                "name": "Example name",
                "isRequired": true,
                "maxSelections": 0,
                "options": [
                  {
                    "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                    "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                    "name": "Example name",
                    "priceDelta": 0,
                    "isDefault": true,
                    "allergenCodes": [
                      "GLUTEN"
                    ]
                  }
                ]
              }
            ],
            "availability": {
              "available": true,
              "reason": "AVAILABLE"
            }
          }
        ],
        "structure": {
          "executionMode": "DIRECT_ITEM",
          "configuratorMode": "DIRECT_ITEM",
          "pricingBehavior": "BASE_PRICE",
          "sellableVersions": "NONE",
          "groups": [
            {
              "id": "example-id",
              "name": "Example name",
              "sourceType": "CATALOG_ITEMS",
              "mode": "FIXED_CONTENTS",
              "minSelections": 0,
              "maxSelections": 0,
              "required": true,
              "choices": [
                {
                  "id": "example-id",
                  "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
                  "name": "Example name",
                  "quantity": 1,
                  "upcharge": 0,
                  "isDefault": true,
                  "isIncluded": true,
                  "variants": [
                    {
                      "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
                      "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
                      "name": "Example name",
                      "price": 0,
                      "allergenCodes": [
                        "GLUTEN"
                      ],
                      "isAlcoholic": true,
                      "modifiers": [
                        {
                          "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                          "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                          "name": "Example name",
                          "isRequired": true,
                          "maxSelections": 0,
                          "options": [
                            {
                              "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                              "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                              "name": "Example name",
                              "priceDelta": 0,
                              "isDefault": true,
                              "allergenCodes": [
                                "GLUTEN"
                              ]
                            }
                          ]
                        }
                      ],
                      "availability": {
                        "available": true,
                        "reason": "AVAILABLE"
                      }
                    }
                  ],
                  "modifiers": [
                    {
                      "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                      "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                      "name": "Example name",
                      "isRequired": true,
                      "maxSelections": 0,
                      "options": [
                        {
                          "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                          "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                          "name": "Example name",
                          "priceDelta": 0,
                          "isDefault": true,
                          "allergenCodes": [
                            "GLUTEN"
                          ]
                        }
                      ]
                    }
                  ],
                  "availability": {
                    "available": true,
                    "reason": "AVAILABLE"
                  }
                }
              ],
              "modifierGroup": null
            }
          ],
          "courses": [
            {
              "groupId": "example",
              "name": "Example name",
              "sequence": 0
            }
          ],
          "measuredPolicy": null,
          "preorderPolicy": null
        },
        "availability": {
          "available": true,
          "reason": "AVAILABLE"
        },
        "sortOrder": 1,
        "preorderEligibility": {
          "serviceModes": [
            "DINE_IN"
          ],
          "minimumQuantity": 1,
          "maximumQuantity": null,
          "minimumLeadMinutes": null,
          "bookingHorizonDays": null
        }
      }
    ]
  }
}
PublicPreorderCatalogItemDto

Cost-safe guest menu item that is eligible for native scheduled ordering.

idRequired

Published menu item snapshot UUID.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Published menu item snapshot UUID.",
  "example": "f2af74de-208d-4d87-807b-46e025174e34"
}
menuItemIdRequired

Stable menu item UUID accepted by native guest ordering.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Stable menu item UUID accepted by native guest ordering.",
  "example": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd"
}
nameRequired

Effective published public item name.

string
Full definition
{
  "type": "string",
  "description": "Effective published public item name.",
  "example": "Example name"
}
descriptionRequired

Effective published public item description; null means none is supplied.

string · null
Full definition
{
  "type": "string",
  "nullable": true,
  "description": "Effective published public item description; null means none is supplied.",
  "example": "Synthetic example"
}
priceRequired

Published item selling price in the menu currency, before guest configuration and quote validation.

number
Full definition
{
  "type": "number",
  "minimum": 0,
  "maximum": 9999999999.99,
  "description": "Published item selling price in the menu currency, before guest configuration and quote validation.",
  "example": 0
}
allergenCodesRequired

Published item allergen codes.

array
Full definition
{
  "type": "array",
  "description": "Published item allergen codes.",
  "items": {
    "type": "string",
    "enum": [
      "GLUTEN",
      "CRUSTACEANS",
      "EGGS",
      "FISH",
      "PEANUTS",
      "SOY",
      "MILK",
      "TREE_NUTS",
      "CELERY",
      "MUSTARD",
      "SESAME",
      "SULPHITES",
      "LUPIN",
      "MOLLUSCS"
    ],
    "example": "GLUTEN"
  },
  "example": [
    "GLUTEN"
  ]
}
isAlcoholicRequired

Whether the published item contains alcohol.

boolean
Full definition
{
  "type": "boolean",
  "description": "Whether the published item contains alcohol.",
  "example": true
}
modifiersRequired

Effective published base-item modifier groups.

array
Full definition
{
  "maxItems": 10000,
  "description": "Effective published base-item modifier groups.",
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/PublicMenuModifierGroupDto"
  },
  "example": [
    {
      "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
      "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
      "name": "Example name",
      "isRequired": true,
      "maxSelections": 0,
      "options": [
        {
          "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
          "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
          "name": "Example name",
          "priceDelta": 0,
          "isDefault": true,
          "allergenCodes": [
            "GLUTEN"
          ]
        }
      ]
    }
  ]
}
variantsRequired

Published sellable versions accepted by the canonical item runtime.

array
Full definition
{
  "maxItems": 5000,
  "description": "Published sellable versions accepted by the canonical item runtime.",
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/PublicMenuVariantDto"
  },
  "example": [
    {
      "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
      "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
      "name": "Example name",
      "price": 0,
      "allergenCodes": [
        "GLUTEN"
      ],
      "isAlcoholic": true,
      "modifiers": [
        {
          "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
          "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
          "name": "Example name",
          "isRequired": true,
          "maxSelections": 0,
          "options": [
            {
              "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
              "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
              "name": "Example name",
              "priceDelta": 0,
              "isDefault": true,
              "allergenCodes": [
                "GLUTEN"
              ]
            }
          ]
        }
      ],
      "availability": {
        "available": true,
        "reason": "AVAILABLE"
      }
    }
  ]
}
structureRequired

Typed public configuration without arbitrary policy graphs or staff internals.

allOf
Full definition
{
  "description": "Typed public configuration without arbitrary policy graphs or staff internals.",
  "allOf": [
    {
      "$ref": "#/components/schemas/PublicMenuConfiguratorDto"
    }
  ],
  "example": {
    "executionMode": "DIRECT_ITEM",
    "configuratorMode": "DIRECT_ITEM",
    "pricingBehavior": "BASE_PRICE",
    "sellableVersions": "NONE",
    "groups": [
      {
        "id": "example-id",
        "name": "Example name",
        "sourceType": "CATALOG_ITEMS",
        "mode": "FIXED_CONTENTS",
        "minSelections": 0,
        "maxSelections": 0,
        "required": true,
        "choices": [
          {
            "id": "example-id",
            "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
            "name": "Example name",
            "quantity": 1,
            "upcharge": 0,
            "isDefault": true,
            "isIncluded": true,
            "variants": [
              {
                "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
                "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
                "name": "Example name",
                "price": 0,
                "allergenCodes": [
                  "GLUTEN"
                ],
                "isAlcoholic": true,
                "modifiers": [
                  {
                    "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                    "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                    "name": "Example name",
                    "isRequired": true,
                    "maxSelections": 0,
                    "options": [
                      {
                        "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                        "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                        "name": "Example name",
                        "priceDelta": 0,
                        "isDefault": true,
                        "allergenCodes": [
                          "GLUTEN"
                        ]
                      }
                    ]
                  }
                ],
                "availability": {
                  "available": true,
                  "reason": "AVAILABLE"
                }
              }
            ],
            "modifiers": [
              {
                "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                "name": "Example name",
                "isRequired": true,
                "maxSelections": 0,
                "options": [
                  {
                    "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                    "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                    "name": "Example name",
                    "priceDelta": 0,
                    "isDefault": true,
                    "allergenCodes": [
                      "GLUTEN"
                    ]
                  }
                ]
              }
            ],
            "availability": {
              "available": true,
              "reason": "AVAILABLE"
            }
          }
        ],
        "modifierGroup": null
      }
    ],
    "courses": [
      {
        "groupId": "example",
        "name": "Example name",
        "sequence": 0
      }
    ],
    "measuredPolicy": null,
    "preorderPolicy": null
  }
}
availabilityRequired

Current published availability; ordering additionally validates its native service and timing rules.

allOf
Full definition
{
  "description": "Current published availability; ordering additionally validates its native service and timing rules.",
  "allOf": [
    {
      "$ref": "#/components/schemas/PublicMenuAvailabilityDto"
    }
  ],
  "example": {
    "available": true,
    "reason": "AVAILABLE"
  }
}
sortOrderRequired

Published display order within the category.

integer
Full definition
{
  "type": "integer",
  "description": "Published display order within the category.",
  "example": 1
}
preorderEligibilityRequired

Effective native preorder eligibility; authoritative quote validation still applies.

allOf
Full definition
{
  "description": "Effective native preorder eligibility; authoritative quote validation still applies.",
  "allOf": [
    {
      "$ref": "#/components/schemas/PublicPreorderEligibilityDto"
    }
  ],
  "example": {
    "serviceModes": [
      "DINE_IN"
    ],
    "minimumQuantity": 1,
    "maximumQuantity": null,
    "minimumLeadMinutes": null,
    "bookingHorizonDays": null
  }
}
Full definition
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Published menu item snapshot UUID.",
      "example": "f2af74de-208d-4d87-807b-46e025174e34"
    },
    "menuItemId": {
      "type": "string",
      "format": "uuid",
      "description": "Stable menu item UUID accepted by native guest ordering.",
      "example": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd"
    },
    "name": {
      "type": "string",
      "description": "Effective published public item name.",
      "example": "Example name"
    },
    "description": {
      "type": "string",
      "nullable": true,
      "description": "Effective published public item description; null means none is supplied.",
      "example": "Synthetic example"
    },
    "price": {
      "type": "number",
      "minimum": 0,
      "maximum": 9999999999.99,
      "description": "Published item selling price in the menu currency, before guest configuration and quote validation.",
      "example": 0
    },
    "allergenCodes": {
      "type": "array",
      "description": "Published item allergen codes.",
      "items": {
        "type": "string",
        "enum": [
          "GLUTEN",
          "CRUSTACEANS",
          "EGGS",
          "FISH",
          "PEANUTS",
          "SOY",
          "MILK",
          "TREE_NUTS",
          "CELERY",
          "MUSTARD",
          "SESAME",
          "SULPHITES",
          "LUPIN",
          "MOLLUSCS"
        ],
        "example": "GLUTEN"
      },
      "example": [
        "GLUTEN"
      ]
    },
    "isAlcoholic": {
      "type": "boolean",
      "description": "Whether the published item contains alcohol.",
      "example": true
    },
    "modifiers": {
      "maxItems": 10000,
      "description": "Effective published base-item modifier groups.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PublicMenuModifierGroupDto"
      },
      "example": [
        {
          "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
          "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
          "name": "Example name",
          "isRequired": true,
          "maxSelections": 0,
          "options": [
            {
              "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
              "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
              "name": "Example name",
              "priceDelta": 0,
              "isDefault": true,
              "allergenCodes": [
                "GLUTEN"
              ]
            }
          ]
        }
      ]
    },
    "variants": {
      "maxItems": 5000,
      "description": "Published sellable versions accepted by the canonical item runtime.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PublicMenuVariantDto"
      },
      "example": [
        {
          "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
          "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
          "name": "Example name",
          "price": 0,
          "allergenCodes": [
            "GLUTEN"
          ],
          "isAlcoholic": true,
          "modifiers": [
            {
              "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
              "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
              "name": "Example name",
              "isRequired": true,
              "maxSelections": 0,
              "options": [
                {
                  "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                  "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                  "name": "Example name",
                  "priceDelta": 0,
                  "isDefault": true,
                  "allergenCodes": [
                    "GLUTEN"
                  ]
                }
              ]
            }
          ],
          "availability": {
            "available": true,
            "reason": "AVAILABLE"
          }
        }
      ]
    },
    "structure": {
      "description": "Typed public configuration without arbitrary policy graphs or staff internals.",
      "allOf": [
        {
          "$ref": "#/components/schemas/PublicMenuConfiguratorDto"
        }
      ],
      "example": {
        "executionMode": "DIRECT_ITEM",
        "configuratorMode": "DIRECT_ITEM",
        "pricingBehavior": "BASE_PRICE",
        "sellableVersions": "NONE",
        "groups": [
          {
            "id": "example-id",
            "name": "Example name",
            "sourceType": "CATALOG_ITEMS",
            "mode": "FIXED_CONTENTS",
            "minSelections": 0,
            "maxSelections": 0,
            "required": true,
            "choices": [
              {
                "id": "example-id",
                "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
                "name": "Example name",
                "quantity": 1,
                "upcharge": 0,
                "isDefault": true,
                "isIncluded": true,
                "variants": [
                  {
                    "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
                    "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
                    "name": "Example name",
                    "price": 0,
                    "allergenCodes": [
                      "GLUTEN"
                    ],
                    "isAlcoholic": true,
                    "modifiers": [
                      {
                        "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                        "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                        "name": "Example name",
                        "isRequired": true,
                        "maxSelections": 0,
                        "options": [
                          {
                            "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                            "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                            "name": "Example name",
                            "priceDelta": 0,
                            "isDefault": true,
                            "allergenCodes": [
                              "GLUTEN"
                            ]
                          }
                        ]
                      }
                    ],
                    "availability": {
                      "available": true,
                      "reason": "AVAILABLE"
                    }
                  }
                ],
                "modifiers": [
                  {
                    "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                    "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                    "name": "Example name",
                    "isRequired": true,
                    "maxSelections": 0,
                    "options": [
                      {
                        "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                        "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                        "name": "Example name",
                        "priceDelta": 0,
                        "isDefault": true,
                        "allergenCodes": [
                          "GLUTEN"
                        ]
                      }
                    ]
                  }
                ],
                "availability": {
                  "available": true,
                  "reason": "AVAILABLE"
                }
              }
            ],
            "modifierGroup": null
          }
        ],
        "courses": [
          {
            "groupId": "example",
            "name": "Example name",
            "sequence": 0
          }
        ],
        "measuredPolicy": null,
        "preorderPolicy": null
      }
    },
    "availability": {
      "description": "Current published availability; ordering additionally validates its native service and timing rules.",
      "allOf": [
        {
          "$ref": "#/components/schemas/PublicMenuAvailabilityDto"
        }
      ],
      "example": {
        "available": true,
        "reason": "AVAILABLE"
      }
    },
    "sortOrder": {
      "type": "integer",
      "description": "Published display order within the category.",
      "example": 1
    },
    "preorderEligibility": {
      "description": "Effective native preorder eligibility; authoritative quote validation still applies.",
      "allOf": [
        {
          "$ref": "#/components/schemas/PublicPreorderEligibilityDto"
        }
      ],
      "example": {
        "serviceModes": [
          "DINE_IN"
        ],
        "minimumQuantity": 1,
        "maximumQuantity": null,
        "minimumLeadMinutes": null,
        "bookingHorizonDays": null
      }
    }
  },
  "description": "Cost-safe guest menu item that is eligible for native scheduled ordering.",
  "required": [
    "id",
    "menuItemId",
    "name",
    "description",
    "price",
    "allergenCodes",
    "isAlcoholic",
    "modifiers",
    "variants",
    "structure",
    "availability",
    "sortOrder",
    "preorderEligibility"
  ],
  "example": {
    "id": "f2af74de-208d-4d87-807b-46e025174e34",
    "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
    "name": "Example name",
    "description": null,
    "price": 0,
    "allergenCodes": [
      "GLUTEN"
    ],
    "isAlcoholic": true,
    "modifiers": [
      {
        "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
        "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
        "name": "Example name",
        "isRequired": true,
        "maxSelections": 0,
        "options": [
          {
            "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
            "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
            "name": "Example name",
            "priceDelta": 0,
            "isDefault": true,
            "allergenCodes": [
              "GLUTEN"
            ]
          }
        ]
      }
    ],
    "variants": [
      {
        "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
        "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
        "name": "Example name",
        "price": 0,
        "allergenCodes": [
          "GLUTEN"
        ],
        "isAlcoholic": true,
        "modifiers": [
          {
            "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
            "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
            "name": "Example name",
            "isRequired": true,
            "maxSelections": 0,
            "options": [
              {
                "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                "name": "Example name",
                "priceDelta": 0,
                "isDefault": true,
                "allergenCodes": [
                  "GLUTEN"
                ]
              }
            ]
          }
        ],
        "availability": {
          "available": true,
          "reason": "AVAILABLE"
        }
      }
    ],
    "structure": {
      "executionMode": "DIRECT_ITEM",
      "configuratorMode": "DIRECT_ITEM",
      "pricingBehavior": "BASE_PRICE",
      "sellableVersions": "NONE",
      "groups": [
        {
          "id": "example-id",
          "name": "Example name",
          "sourceType": "CATALOG_ITEMS",
          "mode": "FIXED_CONTENTS",
          "minSelections": 0,
          "maxSelections": 0,
          "required": true,
          "choices": [
            {
              "id": "example-id",
              "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
              "name": "Example name",
              "quantity": 1,
              "upcharge": 0,
              "isDefault": true,
              "isIncluded": true,
              "variants": [
                {
                  "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
                  "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
                  "name": "Example name",
                  "price": 0,
                  "allergenCodes": [
                    "GLUTEN"
                  ],
                  "isAlcoholic": true,
                  "modifiers": [
                    {
                      "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                      "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                      "name": "Example name",
                      "isRequired": true,
                      "maxSelections": 0,
                      "options": [
                        {
                          "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                          "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                          "name": "Example name",
                          "priceDelta": 0,
                          "isDefault": true,
                          "allergenCodes": [
                            "GLUTEN"
                          ]
                        }
                      ]
                    }
                  ],
                  "availability": {
                    "available": true,
                    "reason": "AVAILABLE"
                  }
                }
              ],
              "modifiers": [
                {
                  "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                  "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                  "name": "Example name",
                  "isRequired": true,
                  "maxSelections": 0,
                  "options": [
                    {
                      "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                      "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                      "name": "Example name",
                      "priceDelta": 0,
                      "isDefault": true,
                      "allergenCodes": [
                        "GLUTEN"
                      ]
                    }
                  ]
                }
              ],
              "availability": {
                "available": true,
                "reason": "AVAILABLE"
              }
            }
          ],
          "modifierGroup": null
        }
      ],
      "courses": [
        {
          "groupId": "example",
          "name": "Example name",
          "sequence": 0
        }
      ],
      "measuredPolicy": null,
      "preorderPolicy": null
    },
    "availability": {
      "available": true,
      "reason": "AVAILABLE"
    },
    "sortOrder": 1,
    "preorderEligibility": {
      "serviceModes": [
        "DINE_IN"
      ],
      "minimumQuantity": 1,
      "maximumQuantity": null,
      "minimumLeadMinutes": null,
      "bookingHorizonDays": null
    }
  }
}
PublicMenuModifierGroupDto

Effective published modifier group and its available guest choices.

idRequired

Published modifier group snapshot UUID.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Published modifier group snapshot UUID.",
  "example": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d"
}
groupIdRequired

Stable modifier group UUID.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Stable modifier group UUID.",
  "example": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb"
}
nameRequired

Published guest-facing modifier group name.

string
Full definition
{
  "type": "string",
  "description": "Published guest-facing modifier group name.",
  "example": "Example name"
}
isRequiredRequired

Whether the effective published assignment requires a selection.

boolean
Full definition
{
  "type": "boolean",
  "description": "Whether the effective published assignment requires a selection.",
  "example": true
}
maxSelectionsRequired

Maximum number of options accepted by the effective published assignment.

integer
Full definition
{
  "type": "integer",
  "minimum": 0,
  "description": "Maximum number of options accepted by the effective published assignment.",
  "example": 0
}
optionsRequired

Currently available published options in their configured order.

array
Full definition
{
  "maxItems": 20000,
  "description": "Currently available published options in their configured order.",
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/PublicMenuModifierOptionDto"
  },
  "example": [
    {
      "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
      "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
      "name": "Example name",
      "priceDelta": 0,
      "isDefault": true,
      "allergenCodes": [
        "GLUTEN"
      ]
    }
  ]
}
Full definition
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Published modifier group snapshot UUID.",
      "example": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d"
    },
    "groupId": {
      "type": "string",
      "format": "uuid",
      "description": "Stable modifier group UUID.",
      "example": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb"
    },
    "name": {
      "type": "string",
      "description": "Published guest-facing modifier group name.",
      "example": "Example name"
    },
    "isRequired": {
      "type": "boolean",
      "description": "Whether the effective published assignment requires a selection.",
      "example": true
    },
    "maxSelections": {
      "type": "integer",
      "minimum": 0,
      "description": "Maximum number of options accepted by the effective published assignment.",
      "example": 0
    },
    "options": {
      "maxItems": 20000,
      "description": "Currently available published options in their configured order.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PublicMenuModifierOptionDto"
      },
      "example": [
        {
          "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
          "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
          "name": "Example name",
          "priceDelta": 0,
          "isDefault": true,
          "allergenCodes": [
            "GLUTEN"
          ]
        }
      ]
    }
  },
  "description": "Effective published modifier group and its available guest choices.",
  "required": [
    "id",
    "groupId",
    "name",
    "isRequired",
    "maxSelections",
    "options"
  ],
  "example": {
    "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
    "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
    "name": "Example name",
    "isRequired": true,
    "maxSelections": 0,
    "options": [
      {
        "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
        "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
        "name": "Example name",
        "priceDelta": 0,
        "isDefault": true,
        "allergenCodes": [
          "GLUTEN"
        ]
      }
    ]
  }
}
PublicMenuModifierOptionDto

Published modifier option with guest-facing price delta and allergen information.

idRequired

Published modifier option snapshot UUID.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Published modifier option snapshot UUID.",
  "example": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126"
}
modifierOptionIdRequired

Stable modifier option UUID used in guest selections.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Stable modifier option UUID used in guest selections.",
  "example": "2375c3d7-0141-4f9a-896c-d07acfb6af1b"
}
nameRequired

Published guest-facing modifier option name.

string
Full definition
{
  "type": "string",
  "description": "Published guest-facing modifier option name.",
  "example": "Example name"
}
priceDeltaRequired

Published selling-price delta in the menu currency, using the existing numeric menu wire representation.

number
Full definition
{
  "type": "number",
  "description": "Published selling-price delta in the menu currency, using the existing numeric menu wire representation.",
  "example": 0
}
isDefaultRequired

Whether the published modifier option is selected by default.

boolean
Full definition
{
  "type": "boolean",
  "description": "Whether the published modifier option is selected by default.",
  "example": true
}
allergenCodesRequired

Published allergen codes for the modifier option.

array
Full definition
{
  "type": "array",
  "description": "Published allergen codes for the modifier option.",
  "items": {
    "type": "string",
    "enum": [
      "GLUTEN",
      "CRUSTACEANS",
      "EGGS",
      "FISH",
      "PEANUTS",
      "SOY",
      "MILK",
      "TREE_NUTS",
      "CELERY",
      "MUSTARD",
      "SESAME",
      "SULPHITES",
      "LUPIN",
      "MOLLUSCS"
    ],
    "example": "GLUTEN"
  },
  "example": [
    "GLUTEN"
  ]
}
Full definition
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Published modifier option snapshot UUID.",
      "example": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126"
    },
    "modifierOptionId": {
      "type": "string",
      "format": "uuid",
      "description": "Stable modifier option UUID used in guest selections.",
      "example": "2375c3d7-0141-4f9a-896c-d07acfb6af1b"
    },
    "name": {
      "type": "string",
      "description": "Published guest-facing modifier option name.",
      "example": "Example name"
    },
    "priceDelta": {
      "type": "number",
      "description": "Published selling-price delta in the menu currency, using the existing numeric menu wire representation.",
      "example": 0
    },
    "isDefault": {
      "type": "boolean",
      "description": "Whether the published modifier option is selected by default.",
      "example": true
    },
    "allergenCodes": {
      "type": "array",
      "description": "Published allergen codes for the modifier option.",
      "items": {
        "type": "string",
        "enum": [
          "GLUTEN",
          "CRUSTACEANS",
          "EGGS",
          "FISH",
          "PEANUTS",
          "SOY",
          "MILK",
          "TREE_NUTS",
          "CELERY",
          "MUSTARD",
          "SESAME",
          "SULPHITES",
          "LUPIN",
          "MOLLUSCS"
        ],
        "example": "GLUTEN"
      },
      "example": [
        "GLUTEN"
      ]
    }
  },
  "description": "Published modifier option with guest-facing price delta and allergen information.",
  "required": [
    "id",
    "modifierOptionId",
    "name",
    "priceDelta",
    "isDefault",
    "allergenCodes"
  ],
  "example": {
    "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
    "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
    "name": "Example name",
    "priceDelta": 0,
    "isDefault": true,
    "allergenCodes": [
      "GLUTEN"
    ]
  }
}
PublicMenuVariantDto

Published sellable version with its effective price and modifier assignments.

idRequired

Published sellable version snapshot UUID.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Published sellable version snapshot UUID.",
  "example": "28f3e585-3f5c-438c-8645-68ea6c44e293"
}
menuVariantIdRequired

Stable menu variant UUID used in guest selections.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Stable menu variant UUID used in guest selections.",
  "example": "94389946-e5d8-4fba-8358-e3a9c8a04b11"
}
nameRequired

Published guest-facing sellable version name.

string
Full definition
{
  "type": "string",
  "description": "Published guest-facing sellable version name.",
  "example": "Example name"
}
priceRequired

Effective published selling price in the menu currency; no cost or margin is included.

number
Full definition
{
  "type": "number",
  "minimum": 0,
  "maximum": 9999999999.99,
  "description": "Effective published selling price in the menu currency; no cost or margin is included.",
  "example": 0
}
allergenCodesRequired

Published allergen codes for this sellable version.

array
Full definition
{
  "type": "array",
  "description": "Published allergen codes for this sellable version.",
  "items": {
    "type": "string",
    "enum": [
      "GLUTEN",
      "CRUSTACEANS",
      "EGGS",
      "FISH",
      "PEANUTS",
      "SOY",
      "MILK",
      "TREE_NUTS",
      "CELERY",
      "MUSTARD",
      "SESAME",
      "SULPHITES",
      "LUPIN",
      "MOLLUSCS"
    ],
    "example": "GLUTEN"
  },
  "example": [
    "GLUTEN"
  ]
}
isAlcoholicRequired

Whether the published sellable version contains alcohol.

boolean
Full definition
{
  "type": "boolean",
  "description": "Whether the published sellable version contains alcohol.",
  "example": true
}
modifiersRequired

Effective base and variant modifier assignments in published order.

array
Full definition
{
  "maxItems": 10000,
  "description": "Effective base and variant modifier assignments in published order.",
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/PublicMenuModifierGroupDto"
  },
  "example": [
    {
      "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
      "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
      "name": "Example name",
      "isRequired": true,
      "maxSelections": 0,
      "options": [
        {
          "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
          "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
          "name": "Example name",
          "priceDelta": 0,
          "isDefault": true,
          "allergenCodes": [
            "GLUTEN"
          ]
        }
      ]
    }
  ]
}
availabilityRequired

Current public availability of this sellable version.

allOf
Full definition
{
  "description": "Current public availability of this sellable version.",
  "allOf": [
    {
      "$ref": "#/components/schemas/PublicMenuAvailabilityDto"
    }
  ],
  "example": {
    "available": true,
    "reason": "AVAILABLE"
  }
}
Full definition
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Published sellable version snapshot UUID.",
      "example": "28f3e585-3f5c-438c-8645-68ea6c44e293"
    },
    "menuVariantId": {
      "type": "string",
      "format": "uuid",
      "description": "Stable menu variant UUID used in guest selections.",
      "example": "94389946-e5d8-4fba-8358-e3a9c8a04b11"
    },
    "name": {
      "type": "string",
      "description": "Published guest-facing sellable version name.",
      "example": "Example name"
    },
    "price": {
      "type": "number",
      "minimum": 0,
      "maximum": 9999999999.99,
      "description": "Effective published selling price in the menu currency; no cost or margin is included.",
      "example": 0
    },
    "allergenCodes": {
      "type": "array",
      "description": "Published allergen codes for this sellable version.",
      "items": {
        "type": "string",
        "enum": [
          "GLUTEN",
          "CRUSTACEANS",
          "EGGS",
          "FISH",
          "PEANUTS",
          "SOY",
          "MILK",
          "TREE_NUTS",
          "CELERY",
          "MUSTARD",
          "SESAME",
          "SULPHITES",
          "LUPIN",
          "MOLLUSCS"
        ],
        "example": "GLUTEN"
      },
      "example": [
        "GLUTEN"
      ]
    },
    "isAlcoholic": {
      "type": "boolean",
      "description": "Whether the published sellable version contains alcohol.",
      "example": true
    },
    "modifiers": {
      "maxItems": 10000,
      "description": "Effective base and variant modifier assignments in published order.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PublicMenuModifierGroupDto"
      },
      "example": [
        {
          "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
          "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
          "name": "Example name",
          "isRequired": true,
          "maxSelections": 0,
          "options": [
            {
              "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
              "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
              "name": "Example name",
              "priceDelta": 0,
              "isDefault": true,
              "allergenCodes": [
                "GLUTEN"
              ]
            }
          ]
        }
      ]
    },
    "availability": {
      "description": "Current public availability of this sellable version.",
      "allOf": [
        {
          "$ref": "#/components/schemas/PublicMenuAvailabilityDto"
        }
      ],
      "example": {
        "available": true,
        "reason": "AVAILABLE"
      }
    }
  },
  "description": "Published sellable version with its effective price and modifier assignments.",
  "required": [
    "id",
    "menuVariantId",
    "name",
    "price",
    "allergenCodes",
    "isAlcoholic",
    "modifiers",
    "availability"
  ],
  "example": {
    "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
    "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
    "name": "Example name",
    "price": 0,
    "allergenCodes": [
      "GLUTEN"
    ],
    "isAlcoholic": true,
    "modifiers": [
      {
        "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
        "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
        "name": "Example name",
        "isRequired": true,
        "maxSelections": 0,
        "options": [
          {
            "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
            "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
            "name": "Example name",
            "priceDelta": 0,
            "isDefault": true,
            "allergenCodes": [
              "GLUTEN"
            ]
          }
        ]
      }
    ],
    "availability": {
      "available": true,
      "reason": "AVAILABLE"
    }
  }
}
PublicMenuAvailabilityDto

Current published availability exposed to guests without stock, capacity or staff reasons.

availableRequired

Whether the published selection is currently available to guests.

boolean
Full definition
{
  "type": "boolean",
  "description": "Whether the published selection is currently available to guests.",
  "example": true
}
reasonRequired

Public reason for the current availability decision.

string
Full definition
{
  "type": "string",
  "enum": [
    "AVAILABLE",
    "PUBLISHED_UNAVAILABLE",
    "STAFF_INPUT_REQUIRED"
  ],
  "description": "Public reason for the current availability decision.",
  "example": "AVAILABLE"
}
Full definition
{
  "type": "object",
  "properties": {
    "available": {
      "type": "boolean",
      "description": "Whether the published selection is currently available to guests.",
      "example": true
    },
    "reason": {
      "type": "string",
      "enum": [
        "AVAILABLE",
        "PUBLISHED_UNAVAILABLE",
        "STAFF_INPUT_REQUIRED"
      ],
      "description": "Public reason for the current availability decision.",
      "example": "AVAILABLE"
    }
  },
  "description": "Current published availability exposed to guests without stock, capacity or staff reasons.",
  "required": [
    "available",
    "reason"
  ],
  "example": {
    "available": true,
    "reason": "AVAILABLE"
  }
}
PublicMenuConfiguratorDto

Explicit public configurator projection derived from the canonical published item runtime.

executionModeRequired

Native published item execution mode.

string
Full definition
{
  "type": "string",
  "enum": [
    "DIRECT_ITEM",
    "SELLABLE_VERSION",
    "COMPONENT_GROUPS",
    "COURSE_SEQUENCE",
    "GUIDED_STAGES",
    "BUNDLE_SECTIONS",
    "MEASURED_QUANTITY",
    "OPEN_PRICE_ENTRY",
    "PREORDER_PACKAGE",
    "CUSTOM_POLICY"
  ],
  "description": "Native published item execution mode.",
  "example": "DIRECT_ITEM"
}
configuratorModeRequired

Effective canonical configurator, including the delegate of a custom policy.

string
Full definition
{
  "type": "string",
  "enum": [
    "DIRECT_ITEM",
    "SELLABLE_VERSION",
    "COMPONENT_GROUPS",
    "COURSE_SEQUENCE",
    "GUIDED_STAGES",
    "BUNDLE_SECTIONS",
    "MEASURED_QUANTITY",
    "OPEN_PRICE_ENTRY",
    "PREORDER_PACKAGE",
    "CUSTOM_POLICY"
  ],
  "description": "Effective canonical configurator, including the delegate of a custom policy.",
  "example": "DIRECT_ITEM"
}
pricingBehaviorRequired

Canonical published selling-price behavior; authoritative totals are calculated by the quote owner.

string
Full definition
{
  "type": "string",
  "enum": [
    "BASE_PRICE",
    "FIXED_PRICE",
    "MEASURED",
    "OPEN_PRICE"
  ],
  "description": "Canonical published selling-price behavior; authoritative totals are calculated by the quote owner.",
  "example": "BASE_PRICE"
}
sellableVersionsRequired

Canonical published sellable-version selection requirement.

string
Full definition
{
  "type": "string",
  "enum": [
    "NONE",
    "OPTIONAL",
    "REQUIRED"
  ],
  "description": "Canonical published sellable-version selection requirement.",
  "example": "NONE"
}
groupsRequired

Typed published guest selection groups in their configured order.

array
Full definition
{
  "maxItems": 50,
  "description": "Typed published guest selection groups in their configured order.",
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/PublicMenuSelectionGroupDto"
  },
  "example": [
    {
      "id": "example-id",
      "name": "Example name",
      "sourceType": "CATALOG_ITEMS",
      "mode": "FIXED_CONTENTS",
      "minSelections": 0,
      "maxSelections": 0,
      "required": true,
      "choices": [
        {
          "id": "example-id",
          "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
          "name": "Example name",
          "quantity": 1,
          "upcharge": 0,
          "isDefault": true,
          "isIncluded": true,
          "variants": [
            {
              "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
              "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
              "name": "Example name",
              "price": 0,
              "allergenCodes": [
                "GLUTEN"
              ],
              "isAlcoholic": true,
              "modifiers": [
                {
                  "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                  "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                  "name": "Example name",
                  "isRequired": true,
                  "maxSelections": 0,
                  "options": [
                    {
                      "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                      "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                      "name": "Example name",
                      "priceDelta": 0,
                      "isDefault": true,
                      "allergenCodes": [
                        "GLUTEN"
                      ]
                    }
                  ]
                }
              ],
              "availability": {
                "available": true,
                "reason": "AVAILABLE"
              }
            }
          ],
          "modifiers": [
            {
              "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
              "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
              "name": "Example name",
              "isRequired": true,
              "maxSelections": 0,
              "options": [
                {
                  "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                  "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                  "name": "Example name",
                  "priceDelta": 0,
                  "isDefault": true,
                  "allergenCodes": [
                    "GLUTEN"
                  ]
                }
              ]
            }
          ],
          "availability": {
            "available": true,
            "reason": "AVAILABLE"
          }
        }
      ],
      "modifierGroup": null
    }
  ]
}
coursesRequired

Guest-facing course names and sequence; empty for an item without courses.

array
Full definition
{
  "maxItems": 50,
  "description": "Guest-facing course names and sequence; empty for an item without courses.",
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/PublicMenuCourseDto"
  },
  "example": [
    {
      "groupId": "example",
      "name": "Example name",
      "sequence": 0
    }
  ]
}
measuredPolicyRequired

Published measurement policy, or null when the item is not measured.

object · null
Full definition
{
  "nullable": true,
  "description": "Published measurement policy, or null when the item is not measured.",
  "type": "object",
  "properties": {
    "measurementType": {
      "type": "string",
      "enum": [
        "WEIGHT",
        "VOLUME"
      ],
      "description": "Published measurement dimension.",
      "example": "WEIGHT"
    },
    "unit": {
      "type": "string",
      "enum": [
        "G",
        "KG",
        "OZ",
        "LB",
        "ML",
        "L",
        "FL_OZ"
      ],
      "description": "Published mass or volume unit used by the measured quantity fields.",
      "example": "G"
    },
    "priceBasisQuantity": {
      "type": "string",
      "description": "Decimal quantity to which the published selling price applies.",
      "example": "1.00"
    },
    "saleIncrement": {
      "type": "string",
      "description": "Decimal step between accepted guest measurement quantities.",
      "example": "example"
    },
    "minimumQuantity": {
      "type": "string",
      "description": "Minimum accepted decimal measurement quantity.",
      "example": "1.000"
    },
    "maximumQuantity": {
      "type": "string",
      "nullable": true,
      "description": "Maximum accepted decimal measurement quantity; null means no published maximum.",
      "example": "1.000"
    },
    "defaultQuantity": {
      "type": "string",
      "description": "Published default decimal measurement quantity.",
      "example": "1.000"
    }
  },
  "required": [
    "measurementType",
    "unit",
    "priceBasisQuantity",
    "saleIncrement",
    "minimumQuantity",
    "maximumQuantity",
    "defaultQuantity"
  ],
  "example": {
    "measurementType": "WEIGHT",
    "unit": "G",
    "priceBasisQuantity": "1.00",
    "saleIncrement": "example",
    "minimumQuantity": "1.000",
    "maximumQuantity": null,
    "defaultQuantity": "1.000"
  }
}
preorderPolicyRequired

Published catering/preorder package policy, or null for other item types.

object · null
Full definition
{
  "nullable": true,
  "description": "Published catering/preorder package policy, or null for other item types.",
  "type": "object",
  "properties": {
    "pricingMode": {
      "type": "string",
      "enum": [
        "FIXED_PACKAGE",
        "PER_GUEST"
      ],
      "description": "Whether the published package price applies per package or per guest.",
      "example": "FIXED_PACKAGE"
    },
    "allowedServiceModes": {
      "type": "array",
      "description": "Fulfillment modes accepted by the published package.",
      "items": {
        "type": "string",
        "enum": [
          "DINE_IN",
          "PICKUP",
          "DELIVERY",
          "CATERING"
        ],
        "example": "DINE_IN"
      },
      "example": [
        "DINE_IN"
      ]
    },
    "leadTimeHours": {
      "type": "integer",
      "minimum": 1,
      "description": "Published minimum lead time in hours.",
      "example": 1
    },
    "maximumAdvanceDays": {
      "type": "integer",
      "minimum": 1,
      "description": "Published maximum number of days in advance.",
      "example": 1
    },
    "cutoffTime": {
      "type": "string",
      "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
      "description": "Published local cutoff clock time in the venue timezone.",
      "example": "12:30"
    },
    "minGuestCount": {
      "type": "integer",
      "minimum": 1,
      "description": "Minimum guest count accepted by the package.",
      "example": 1
    },
    "maxGuestCount": {
      "type": "integer",
      "minimum": 1,
      "description": "Maximum guest count accepted by the package.",
      "example": 1
    },
    "guestCountStep": {
      "type": "integer",
      "minimum": 1,
      "description": "Published step between accepted guest counts.",
      "example": 1
    },
    "fulfillmentDays": {
      "type": "array",
      "items": {
        "type": "integer",
        "minimum": 0,
        "maximum": 6,
        "example": 0
      },
      "description": "Accepted venue-local weekdays, with Sunday represented by zero.",
      "example": [
        0
      ]
    },
    "requiresContactDetails": {
      "type": "boolean",
      "description": "Whether this package requires guest contact details.",
      "example": true
    },
    "requiresFulfillmentNote": {
      "type": "boolean",
      "description": "Whether this package requires a guest fulfillment note.",
      "example": true
    }
  },
  "required": [
    "pricingMode",
    "allowedServiceModes",
    "leadTimeHours",
    "maximumAdvanceDays",
    "cutoffTime",
    "minGuestCount",
    "maxGuestCount",
    "guestCountStep",
    "fulfillmentDays",
    "requiresContactDetails",
    "requiresFulfillmentNote"
  ],
  "example": {
    "pricingMode": "FIXED_PACKAGE",
    "allowedServiceModes": [
      "DINE_IN"
    ],
    "leadTimeHours": 1,
    "maximumAdvanceDays": 1,
    "cutoffTime": "12:30",
    "minGuestCount": 1,
    "maxGuestCount": 1,
    "guestCountStep": 1,
    "fulfillmentDays": [
      0
    ],
    "requiresContactDetails": true,
    "requiresFulfillmentNote": true
  }
}
Full definition
{
  "type": "object",
  "properties": {
    "executionMode": {
      "type": "string",
      "enum": [
        "DIRECT_ITEM",
        "SELLABLE_VERSION",
        "COMPONENT_GROUPS",
        "COURSE_SEQUENCE",
        "GUIDED_STAGES",
        "BUNDLE_SECTIONS",
        "MEASURED_QUANTITY",
        "OPEN_PRICE_ENTRY",
        "PREORDER_PACKAGE",
        "CUSTOM_POLICY"
      ],
      "description": "Native published item execution mode.",
      "example": "DIRECT_ITEM"
    },
    "configuratorMode": {
      "type": "string",
      "enum": [
        "DIRECT_ITEM",
        "SELLABLE_VERSION",
        "COMPONENT_GROUPS",
        "COURSE_SEQUENCE",
        "GUIDED_STAGES",
        "BUNDLE_SECTIONS",
        "MEASURED_QUANTITY",
        "OPEN_PRICE_ENTRY",
        "PREORDER_PACKAGE",
        "CUSTOM_POLICY"
      ],
      "description": "Effective canonical configurator, including the delegate of a custom policy.",
      "example": "DIRECT_ITEM"
    },
    "pricingBehavior": {
      "type": "string",
      "enum": [
        "BASE_PRICE",
        "FIXED_PRICE",
        "MEASURED",
        "OPEN_PRICE"
      ],
      "description": "Canonical published selling-price behavior; authoritative totals are calculated by the quote owner.",
      "example": "BASE_PRICE"
    },
    "sellableVersions": {
      "type": "string",
      "enum": [
        "NONE",
        "OPTIONAL",
        "REQUIRED"
      ],
      "description": "Canonical published sellable-version selection requirement.",
      "example": "NONE"
    },
    "groups": {
      "maxItems": 50,
      "description": "Typed published guest selection groups in their configured order.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PublicMenuSelectionGroupDto"
      },
      "example": [
        {
          "id": "example-id",
          "name": "Example name",
          "sourceType": "CATALOG_ITEMS",
          "mode": "FIXED_CONTENTS",
          "minSelections": 0,
          "maxSelections": 0,
          "required": true,
          "choices": [
            {
              "id": "example-id",
              "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
              "name": "Example name",
              "quantity": 1,
              "upcharge": 0,
              "isDefault": true,
              "isIncluded": true,
              "variants": [
                {
                  "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
                  "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
                  "name": "Example name",
                  "price": 0,
                  "allergenCodes": [
                    "GLUTEN"
                  ],
                  "isAlcoholic": true,
                  "modifiers": [
                    {
                      "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                      "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                      "name": "Example name",
                      "isRequired": true,
                      "maxSelections": 0,
                      "options": [
                        {
                          "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                          "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                          "name": "Example name",
                          "priceDelta": 0,
                          "isDefault": true,
                          "allergenCodes": [
                            "GLUTEN"
                          ]
                        }
                      ]
                    }
                  ],
                  "availability": {
                    "available": true,
                    "reason": "AVAILABLE"
                  }
                }
              ],
              "modifiers": [
                {
                  "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                  "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                  "name": "Example name",
                  "isRequired": true,
                  "maxSelections": 0,
                  "options": [
                    {
                      "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                      "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                      "name": "Example name",
                      "priceDelta": 0,
                      "isDefault": true,
                      "allergenCodes": [
                        "GLUTEN"
                      ]
                    }
                  ]
                }
              ],
              "availability": {
                "available": true,
                "reason": "AVAILABLE"
              }
            }
          ],
          "modifierGroup": null
        }
      ]
    },
    "courses": {
      "maxItems": 50,
      "description": "Guest-facing course names and sequence; empty for an item without courses.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PublicMenuCourseDto"
      },
      "example": [
        {
          "groupId": "example",
          "name": "Example name",
          "sequence": 0
        }
      ]
    },
    "measuredPolicy": {
      "nullable": true,
      "description": "Published measurement policy, or null when the item is not measured.",
      "type": "object",
      "properties": {
        "measurementType": {
          "type": "string",
          "enum": [
            "WEIGHT",
            "VOLUME"
          ],
          "description": "Published measurement dimension.",
          "example": "WEIGHT"
        },
        "unit": {
          "type": "string",
          "enum": [
            "G",
            "KG",
            "OZ",
            "LB",
            "ML",
            "L",
            "FL_OZ"
          ],
          "description": "Published mass or volume unit used by the measured quantity fields.",
          "example": "G"
        },
        "priceBasisQuantity": {
          "type": "string",
          "description": "Decimal quantity to which the published selling price applies.",
          "example": "1.00"
        },
        "saleIncrement": {
          "type": "string",
          "description": "Decimal step between accepted guest measurement quantities.",
          "example": "example"
        },
        "minimumQuantity": {
          "type": "string",
          "description": "Minimum accepted decimal measurement quantity.",
          "example": "1.000"
        },
        "maximumQuantity": {
          "type": "string",
          "nullable": true,
          "description": "Maximum accepted decimal measurement quantity; null means no published maximum.",
          "example": "1.000"
        },
        "defaultQuantity": {
          "type": "string",
          "description": "Published default decimal measurement quantity.",
          "example": "1.000"
        }
      },
      "required": [
        "measurementType",
        "unit",
        "priceBasisQuantity",
        "saleIncrement",
        "minimumQuantity",
        "maximumQuantity",
        "defaultQuantity"
      ],
      "example": {
        "measurementType": "WEIGHT",
        "unit": "G",
        "priceBasisQuantity": "1.00",
        "saleIncrement": "example",
        "minimumQuantity": "1.000",
        "maximumQuantity": null,
        "defaultQuantity": "1.000"
      }
    },
    "preorderPolicy": {
      "nullable": true,
      "description": "Published catering/preorder package policy, or null for other item types.",
      "type": "object",
      "properties": {
        "pricingMode": {
          "type": "string",
          "enum": [
            "FIXED_PACKAGE",
            "PER_GUEST"
          ],
          "description": "Whether the published package price applies per package or per guest.",
          "example": "FIXED_PACKAGE"
        },
        "allowedServiceModes": {
          "type": "array",
          "description": "Fulfillment modes accepted by the published package.",
          "items": {
            "type": "string",
            "enum": [
              "DINE_IN",
              "PICKUP",
              "DELIVERY",
              "CATERING"
            ],
            "example": "DINE_IN"
          },
          "example": [
            "DINE_IN"
          ]
        },
        "leadTimeHours": {
          "type": "integer",
          "minimum": 1,
          "description": "Published minimum lead time in hours.",
          "example": 1
        },
        "maximumAdvanceDays": {
          "type": "integer",
          "minimum": 1,
          "description": "Published maximum number of days in advance.",
          "example": 1
        },
        "cutoffTime": {
          "type": "string",
          "pattern": "^([01]\\d|2[0-3]):[0-5]\\d$",
          "description": "Published local cutoff clock time in the venue timezone.",
          "example": "12:30"
        },
        "minGuestCount": {
          "type": "integer",
          "minimum": 1,
          "description": "Minimum guest count accepted by the package.",
          "example": 1
        },
        "maxGuestCount": {
          "type": "integer",
          "minimum": 1,
          "description": "Maximum guest count accepted by the package.",
          "example": 1
        },
        "guestCountStep": {
          "type": "integer",
          "minimum": 1,
          "description": "Published step between accepted guest counts.",
          "example": 1
        },
        "fulfillmentDays": {
          "type": "array",
          "items": {
            "type": "integer",
            "minimum": 0,
            "maximum": 6,
            "example": 0
          },
          "description": "Accepted venue-local weekdays, with Sunday represented by zero.",
          "example": [
            0
          ]
        },
        "requiresContactDetails": {
          "type": "boolean",
          "description": "Whether this package requires guest contact details.",
          "example": true
        },
        "requiresFulfillmentNote": {
          "type": "boolean",
          "description": "Whether this package requires a guest fulfillment note.",
          "example": true
        }
      },
      "required": [
        "pricingMode",
        "allowedServiceModes",
        "leadTimeHours",
        "maximumAdvanceDays",
        "cutoffTime",
        "minGuestCount",
        "maxGuestCount",
        "guestCountStep",
        "fulfillmentDays",
        "requiresContactDetails",
        "requiresFulfillmentNote"
      ],
      "example": {
        "pricingMode": "FIXED_PACKAGE",
        "allowedServiceModes": [
          "DINE_IN"
        ],
        "leadTimeHours": 1,
        "maximumAdvanceDays": 1,
        "cutoffTime": "12:30",
        "minGuestCount": 1,
        "maxGuestCount": 1,
        "guestCountStep": 1,
        "fulfillmentDays": [
          0
        ],
        "requiresContactDetails": true,
        "requiresFulfillmentNote": true
      }
    }
  },
  "description": "Explicit public configurator projection derived from the canonical published item runtime.",
  "required": [
    "executionMode",
    "configuratorMode",
    "pricingBehavior",
    "sellableVersions",
    "groups",
    "courses",
    "measuredPolicy",
    "preorderPolicy"
  ],
  "example": {
    "executionMode": "DIRECT_ITEM",
    "configuratorMode": "DIRECT_ITEM",
    "pricingBehavior": "BASE_PRICE",
    "sellableVersions": "NONE",
    "groups": [
      {
        "id": "example-id",
        "name": "Example name",
        "sourceType": "CATALOG_ITEMS",
        "mode": "FIXED_CONTENTS",
        "minSelections": 0,
        "maxSelections": 0,
        "required": true,
        "choices": [
          {
            "id": "example-id",
            "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
            "name": "Example name",
            "quantity": 1,
            "upcharge": 0,
            "isDefault": true,
            "isIncluded": true,
            "variants": [
              {
                "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
                "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
                "name": "Example name",
                "price": 0,
                "allergenCodes": [
                  "GLUTEN"
                ],
                "isAlcoholic": true,
                "modifiers": [
                  {
                    "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                    "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                    "name": "Example name",
                    "isRequired": true,
                    "maxSelections": 0,
                    "options": [
                      {
                        "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                        "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                        "name": "Example name",
                        "priceDelta": 0,
                        "isDefault": true,
                        "allergenCodes": [
                          "GLUTEN"
                        ]
                      }
                    ]
                  }
                ],
                "availability": {
                  "available": true,
                  "reason": "AVAILABLE"
                }
              }
            ],
            "modifiers": [
              {
                "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                "name": "Example name",
                "isRequired": true,
                "maxSelections": 0,
                "options": [
                  {
                    "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                    "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                    "name": "Example name",
                    "priceDelta": 0,
                    "isDefault": true,
                    "allergenCodes": [
                      "GLUTEN"
                    ]
                  }
                ]
              }
            ],
            "availability": {
              "available": true,
              "reason": "AVAILABLE"
            }
          }
        ],
        "modifierGroup": null
      }
    ],
    "courses": [
      {
        "groupId": "example",
        "name": "Example name",
        "sequence": 0
      }
    ],
    "measuredPolicy": null,
    "preorderPolicy": null
  }
}
PublicMenuSelectionGroupDto

Typed guest selection group shared by components, guided stages, courses, bundles and catering packages.

idRequired

Stable group or stage identifier accepted in guest component selections.

string
Full definition
{
  "type": "string",
  "description": "Stable group or stage identifier accepted in guest component selections.",
  "example": "example-id"
}
nameRequired

Published guest-facing group or stage label.

string
Full definition
{
  "type": "string",
  "description": "Published guest-facing group or stage label.",
  "example": "Example name"
}
sourceTypeRequired

Whether the selection refers to catalog components or published modifier options.

string
Full definition
{
  "type": "string",
  "enum": [
    "CATALOG_ITEMS",
    "MODIFIER_GROUP"
  ],
  "description": "Whether the selection refers to catalog components or published modifier options.",
  "example": "CATALOG_ITEMS"
}
modeRequired

Published selection behavior for fixed contents, a guest choice or an optional add-on.

string
Full definition
{
  "type": "string",
  "enum": [
    "FIXED_CONTENTS",
    "GUEST_CHOICE",
    "OPTIONAL_ADD_ON"
  ],
  "description": "Published selection behavior for fixed contents, a guest choice or an optional add-on.",
  "example": "FIXED_CONTENTS"
}
minSelectionsRequired

Minimum number of choices required by the published group.

integer
Full definition
{
  "type": "integer",
  "minimum": 0,
  "description": "Minimum number of choices required by the published group.",
  "example": 0
}
maxSelectionsRequired

Maximum number of choices allowed by the published group.

integer
Full definition
{
  "type": "integer",
  "minimum": 0,
  "description": "Maximum number of choices allowed by the published group.",
  "example": 0
}
requiredRequired

Whether the guest must satisfy this published selection group.

boolean
Full definition
{
  "type": "boolean",
  "description": "Whether the guest must satisfy this published selection group.",
  "example": true
}
choicesRequired

Published catalog choices; empty for a modifier-group stage.

array
Full definition
{
  "maxItems": 100,
  "description": "Published catalog choices; empty for a modifier-group stage.",
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/PublicMenuSelectionChoiceDto"
  },
  "example": [
    {
      "id": "example-id",
      "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
      "name": "Example name",
      "quantity": 1,
      "upcharge": 0,
      "isDefault": true,
      "isIncluded": true,
      "variants": [
        {
          "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
          "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
          "name": "Example name",
          "price": 0,
          "allergenCodes": [
            "GLUTEN"
          ],
          "isAlcoholic": true,
          "modifiers": [
            {
              "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
              "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
              "name": "Example name",
              "isRequired": true,
              "maxSelections": 0,
              "options": [
                {
                  "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                  "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                  "name": "Example name",
                  "priceDelta": 0,
                  "isDefault": true,
                  "allergenCodes": [
                    "GLUTEN"
                  ]
                }
              ]
            }
          ],
          "availability": {
            "available": true,
            "reason": "AVAILABLE"
          }
        }
      ],
      "modifiers": [
        {
          "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
          "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
          "name": "Example name",
          "isRequired": true,
          "maxSelections": 0,
          "options": [
            {
              "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
              "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
              "name": "Example name",
              "priceDelta": 0,
              "isDefault": true,
              "allergenCodes": [
                "GLUTEN"
              ]
            }
          ]
        }
      ],
      "availability": {
        "available": true,
        "reason": "AVAILABLE"
      }
    }
  ]
}
modifierGroupRequired

Published modifier group for a modifier stage; null for catalog choices.

object · null
Full definition
{
  "nullable": true,
  "description": "Published modifier group for a modifier stage; null for catalog choices.",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Published modifier group snapshot UUID.",
      "example": "ec6e241e-1951-41c2-8739-0bd8d04ca0a6"
    },
    "groupId": {
      "type": "string",
      "format": "uuid",
      "description": "Stable modifier group UUID.",
      "example": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb"
    },
    "name": {
      "type": "string",
      "description": "Published guest-facing modifier group name.",
      "example": "Example name"
    },
    "isRequired": {
      "type": "boolean",
      "description": "Whether the effective published assignment requires a selection.",
      "example": true
    },
    "maxSelections": {
      "type": "integer",
      "minimum": 0,
      "description": "Maximum number of options accepted by the effective published assignment.",
      "example": 0
    },
    "options": {
      "maxItems": 20000,
      "description": "Currently available published options in their configured order.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PublicMenuModifierOptionDto"
      },
      "example": [
        {
          "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
          "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
          "name": "Example name",
          "priceDelta": 0,
          "isDefault": true,
          "allergenCodes": [
            "GLUTEN"
          ]
        }
      ]
    }
  },
  "required": [
    "id",
    "groupId",
    "name",
    "isRequired",
    "maxSelections",
    "options"
  ],
  "example": {
    "id": "ec6e241e-1951-41c2-8739-0bd8d04ca0a6",
    "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
    "name": "Example name",
    "isRequired": true,
    "maxSelections": 0,
    "options": [
      {
        "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
        "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
        "name": "Example name",
        "priceDelta": 0,
        "isDefault": true,
        "allergenCodes": [
          "GLUTEN"
        ]
      }
    ]
  }
}
Full definition
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Stable group or stage identifier accepted in guest component selections.",
      "example": "example-id"
    },
    "name": {
      "type": "string",
      "description": "Published guest-facing group or stage label.",
      "example": "Example name"
    },
    "sourceType": {
      "type": "string",
      "enum": [
        "CATALOG_ITEMS",
        "MODIFIER_GROUP"
      ],
      "description": "Whether the selection refers to catalog components or published modifier options.",
      "example": "CATALOG_ITEMS"
    },
    "mode": {
      "type": "string",
      "enum": [
        "FIXED_CONTENTS",
        "GUEST_CHOICE",
        "OPTIONAL_ADD_ON"
      ],
      "description": "Published selection behavior for fixed contents, a guest choice or an optional add-on.",
      "example": "FIXED_CONTENTS"
    },
    "minSelections": {
      "type": "integer",
      "minimum": 0,
      "description": "Minimum number of choices required by the published group.",
      "example": 0
    },
    "maxSelections": {
      "type": "integer",
      "minimum": 0,
      "description": "Maximum number of choices allowed by the published group.",
      "example": 0
    },
    "required": {
      "type": "boolean",
      "description": "Whether the guest must satisfy this published selection group.",
      "example": true
    },
    "choices": {
      "maxItems": 100,
      "description": "Published catalog choices; empty for a modifier-group stage.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PublicMenuSelectionChoiceDto"
      },
      "example": [
        {
          "id": "example-id",
          "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
          "name": "Example name",
          "quantity": 1,
          "upcharge": 0,
          "isDefault": true,
          "isIncluded": true,
          "variants": [
            {
              "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
              "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
              "name": "Example name",
              "price": 0,
              "allergenCodes": [
                "GLUTEN"
              ],
              "isAlcoholic": true,
              "modifiers": [
                {
                  "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                  "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                  "name": "Example name",
                  "isRequired": true,
                  "maxSelections": 0,
                  "options": [
                    {
                      "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                      "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                      "name": "Example name",
                      "priceDelta": 0,
                      "isDefault": true,
                      "allergenCodes": [
                        "GLUTEN"
                      ]
                    }
                  ]
                }
              ],
              "availability": {
                "available": true,
                "reason": "AVAILABLE"
              }
            }
          ],
          "modifiers": [
            {
              "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
              "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
              "name": "Example name",
              "isRequired": true,
              "maxSelections": 0,
              "options": [
                {
                  "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                  "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                  "name": "Example name",
                  "priceDelta": 0,
                  "isDefault": true,
                  "allergenCodes": [
                    "GLUTEN"
                  ]
                }
              ]
            }
          ],
          "availability": {
            "available": true,
            "reason": "AVAILABLE"
          }
        }
      ]
    },
    "modifierGroup": {
      "nullable": true,
      "description": "Published modifier group for a modifier stage; null for catalog choices.",
      "type": "object",
      "properties": {
        "id": {
          "type": "string",
          "format": "uuid",
          "description": "Published modifier group snapshot UUID.",
          "example": "ec6e241e-1951-41c2-8739-0bd8d04ca0a6"
        },
        "groupId": {
          "type": "string",
          "format": "uuid",
          "description": "Stable modifier group UUID.",
          "example": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb"
        },
        "name": {
          "type": "string",
          "description": "Published guest-facing modifier group name.",
          "example": "Example name"
        },
        "isRequired": {
          "type": "boolean",
          "description": "Whether the effective published assignment requires a selection.",
          "example": true
        },
        "maxSelections": {
          "type": "integer",
          "minimum": 0,
          "description": "Maximum number of options accepted by the effective published assignment.",
          "example": 0
        },
        "options": {
          "maxItems": 20000,
          "description": "Currently available published options in their configured order.",
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/PublicMenuModifierOptionDto"
          },
          "example": [
            {
              "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
              "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
              "name": "Example name",
              "priceDelta": 0,
              "isDefault": true,
              "allergenCodes": [
                "GLUTEN"
              ]
            }
          ]
        }
      },
      "required": [
        "id",
        "groupId",
        "name",
        "isRequired",
        "maxSelections",
        "options"
      ],
      "example": {
        "id": "ec6e241e-1951-41c2-8739-0bd8d04ca0a6",
        "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
        "name": "Example name",
        "isRequired": true,
        "maxSelections": 0,
        "options": [
          {
            "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
            "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
            "name": "Example name",
            "priceDelta": 0,
            "isDefault": true,
            "allergenCodes": [
              "GLUTEN"
            ]
          }
        ]
      }
    }
  },
  "description": "Typed guest selection group shared by components, guided stages, courses, bundles and catering packages.",
  "required": [
    "id",
    "name",
    "sourceType",
    "mode",
    "minSelections",
    "maxSelections",
    "required",
    "choices",
    "modifierGroup"
  ],
  "example": {
    "id": "example-id",
    "name": "Example name",
    "sourceType": "CATALOG_ITEMS",
    "mode": "FIXED_CONTENTS",
    "minSelections": 0,
    "maxSelections": 0,
    "required": true,
    "choices": [
      {
        "id": "example-id",
        "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
        "name": "Example name",
        "quantity": 1,
        "upcharge": 0,
        "isDefault": true,
        "isIncluded": true,
        "variants": [
          {
            "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
            "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
            "name": "Example name",
            "price": 0,
            "allergenCodes": [
              "GLUTEN"
            ],
            "isAlcoholic": true,
            "modifiers": [
              {
                "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
                "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
                "name": "Example name",
                "isRequired": true,
                "maxSelections": 0,
                "options": [
                  {
                    "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                    "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                    "name": "Example name",
                    "priceDelta": 0,
                    "isDefault": true,
                    "allergenCodes": [
                      "GLUTEN"
                    ]
                  }
                ]
              }
            ],
            "availability": {
              "available": true,
              "reason": "AVAILABLE"
            }
          }
        ],
        "modifiers": [
          {
            "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
            "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
            "name": "Example name",
            "isRequired": true,
            "maxSelections": 0,
            "options": [
              {
                "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                "name": "Example name",
                "priceDelta": 0,
                "isDefault": true,
                "allergenCodes": [
                  "GLUTEN"
                ]
              }
            ]
          }
        ],
        "availability": {
          "available": true,
          "reason": "AVAILABLE"
        }
      }
    ],
    "modifierGroup": null
  }
}
PublicMenuSelectionChoiceDto

Published component or package choice with guest-facing configuration and selling upcharge.

idRequired

Stable choice identifier accepted for its published selection group.

string
Full definition
{
  "type": "string",
  "description": "Stable choice identifier accepted for its published selection group.",
  "example": "example-id"
}
menuItemIdRequired

Stable published component menu item UUID.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Stable published component menu item UUID.",
  "example": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd"
}
nameRequired

Published choice label or the component public name.

string
Full definition
{
  "type": "string",
  "description": "Published choice label or the component public name.",
  "example": "Example name"
}
quantityRequired

Published component quantity represented in the existing menu quantity wire format.

number
Full definition
{
  "type": "number",
  "minimum": 0.001,
  "maximum": 999999999.999,
  "description": "Published component quantity represented in the existing menu quantity wire format.",
  "example": 1
}
upchargeRequired

Published selling upcharge for selecting this component in the parent menu currency.

number
Full definition
{
  "type": "number",
  "minimum": 0,
  "maximum": 9999999999.99,
  "description": "Published selling upcharge for selecting this component in the parent menu currency.",
  "example": 0
}
isDefaultRequired

Whether this choice is selected by default.

boolean
Full definition
{
  "type": "boolean",
  "description": "Whether this choice is selected by default.",
  "example": true
}
isIncludedRequired

Whether this component is part of the published included contents.

boolean
Full definition
{
  "type": "boolean",
  "description": "Whether this component is part of the published included contents.",
  "example": true
}
variantsRequired

Published sellable versions accepted for this component choice.

array
Full definition
{
  "maxItems": 5000,
  "description": "Published sellable versions accepted for this component choice.",
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/PublicMenuVariantDto"
  },
  "example": [
    {
      "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
      "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
      "name": "Example name",
      "price": 0,
      "allergenCodes": [
        "GLUTEN"
      ],
      "isAlcoholic": true,
      "modifiers": [
        {
          "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
          "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
          "name": "Example name",
          "isRequired": true,
          "maxSelections": 0,
          "options": [
            {
              "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
              "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
              "name": "Example name",
              "priceDelta": 0,
              "isDefault": true,
              "allergenCodes": [
                "GLUTEN"
              ]
            }
          ]
        }
      ],
      "availability": {
        "available": true,
        "reason": "AVAILABLE"
      }
    }
  ]
}
modifiersRequired

Published modifiers accepted for this component choice.

array
Full definition
{
  "maxItems": 10000,
  "description": "Published modifiers accepted for this component choice.",
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/PublicMenuModifierGroupDto"
  },
  "example": [
    {
      "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
      "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
      "name": "Example name",
      "isRequired": true,
      "maxSelections": 0,
      "options": [
        {
          "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
          "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
          "name": "Example name",
          "priceDelta": 0,
          "isDefault": true,
          "allergenCodes": [
            "GLUTEN"
          ]
        }
      ]
    }
  ]
}
availabilityRequired

Current public availability of this component choice.

allOf
Full definition
{
  "description": "Current public availability of this component choice.",
  "allOf": [
    {
      "$ref": "#/components/schemas/PublicMenuAvailabilityDto"
    }
  ],
  "example": {
    "available": true,
    "reason": "AVAILABLE"
  }
}
Full definition
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Stable choice identifier accepted for its published selection group.",
      "example": "example-id"
    },
    "menuItemId": {
      "type": "string",
      "format": "uuid",
      "description": "Stable published component menu item UUID.",
      "example": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd"
    },
    "name": {
      "type": "string",
      "description": "Published choice label or the component public name.",
      "example": "Example name"
    },
    "quantity": {
      "type": "number",
      "minimum": 0.001,
      "maximum": 999999999.999,
      "description": "Published component quantity represented in the existing menu quantity wire format.",
      "example": 1
    },
    "upcharge": {
      "type": "number",
      "minimum": 0,
      "maximum": 9999999999.99,
      "description": "Published selling upcharge for selecting this component in the parent menu currency.",
      "example": 0
    },
    "isDefault": {
      "type": "boolean",
      "description": "Whether this choice is selected by default.",
      "example": true
    },
    "isIncluded": {
      "type": "boolean",
      "description": "Whether this component is part of the published included contents.",
      "example": true
    },
    "variants": {
      "maxItems": 5000,
      "description": "Published sellable versions accepted for this component choice.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PublicMenuVariantDto"
      },
      "example": [
        {
          "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
          "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
          "name": "Example name",
          "price": 0,
          "allergenCodes": [
            "GLUTEN"
          ],
          "isAlcoholic": true,
          "modifiers": [
            {
              "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
              "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
              "name": "Example name",
              "isRequired": true,
              "maxSelections": 0,
              "options": [
                {
                  "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                  "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                  "name": "Example name",
                  "priceDelta": 0,
                  "isDefault": true,
                  "allergenCodes": [
                    "GLUTEN"
                  ]
                }
              ]
            }
          ],
          "availability": {
            "available": true,
            "reason": "AVAILABLE"
          }
        }
      ]
    },
    "modifiers": {
      "maxItems": 10000,
      "description": "Published modifiers accepted for this component choice.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/PublicMenuModifierGroupDto"
      },
      "example": [
        {
          "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
          "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
          "name": "Example name",
          "isRequired": true,
          "maxSelections": 0,
          "options": [
            {
              "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
              "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
              "name": "Example name",
              "priceDelta": 0,
              "isDefault": true,
              "allergenCodes": [
                "GLUTEN"
              ]
            }
          ]
        }
      ]
    },
    "availability": {
      "description": "Current public availability of this component choice.",
      "allOf": [
        {
          "$ref": "#/components/schemas/PublicMenuAvailabilityDto"
        }
      ],
      "example": {
        "available": true,
        "reason": "AVAILABLE"
      }
    }
  },
  "description": "Published component or package choice with guest-facing configuration and selling upcharge.",
  "required": [
    "id",
    "menuItemId",
    "name",
    "quantity",
    "upcharge",
    "isDefault",
    "isIncluded",
    "variants",
    "modifiers",
    "availability"
  ],
  "example": {
    "id": "example-id",
    "menuItemId": "16ee6f36-c0cb-4311-85e8-2d2b3edea0fd",
    "name": "Example name",
    "quantity": 1,
    "upcharge": 0,
    "isDefault": true,
    "isIncluded": true,
    "variants": [
      {
        "id": "28f3e585-3f5c-438c-8645-68ea6c44e293",
        "menuVariantId": "94389946-e5d8-4fba-8358-e3a9c8a04b11",
        "name": "Example name",
        "price": 0,
        "allergenCodes": [
          "GLUTEN"
        ],
        "isAlcoholic": true,
        "modifiers": [
          {
            "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
            "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
            "name": "Example name",
            "isRequired": true,
            "maxSelections": 0,
            "options": [
              {
                "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
                "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
                "name": "Example name",
                "priceDelta": 0,
                "isDefault": true,
                "allergenCodes": [
                  "GLUTEN"
                ]
              }
            ]
          }
        ],
        "availability": {
          "available": true,
          "reason": "AVAILABLE"
        }
      }
    ],
    "modifiers": [
      {
        "id": "b7c8dac2-5dc8-457c-8ccd-cdd7bb09d27d",
        "groupId": "a457fc4d-a0cd-4f90-8fb1-e0db1f8a6beb",
        "name": "Example name",
        "isRequired": true,
        "maxSelections": 0,
        "options": [
          {
            "id": "cfd7f5ea-ada3-4506-8d5e-d10a89a0b126",
            "modifierOptionId": "2375c3d7-0141-4f9a-896c-d07acfb6af1b",
            "name": "Example name",
            "priceDelta": 0,
            "isDefault": true,
            "allergenCodes": [
              "GLUTEN"
            ]
          }
        ]
      }
    ],
    "availability": {
      "available": true,
      "reason": "AVAILABLE"
    }
  }
}
PublicMenuCourseDto

Guest-visible course label and sequence without staff release or kitchen scheduling policy.

groupIdRequired

Published selection group belonging to this course.

string
Full definition
{
  "type": "string",
  "description": "Published selection group belonging to this course.",
  "example": "example"
}
nameRequired

Guest-visible course name.

string
Full definition
{
  "type": "string",
  "description": "Guest-visible course name.",
  "example": "Example name"
}
sequenceRequired

Published service sequence used to order the guest course choices.

integer
Full definition
{
  "type": "integer",
  "description": "Published service sequence used to order the guest course choices.",
  "example": 0
}
Full definition
{
  "type": "object",
  "properties": {
    "groupId": {
      "type": "string",
      "description": "Published selection group belonging to this course.",
      "example": "example"
    },
    "name": {
      "type": "string",
      "description": "Guest-visible course name.",
      "example": "Example name"
    },
    "sequence": {
      "type": "integer",
      "description": "Published service sequence used to order the guest course choices.",
      "example": 0
    }
  },
  "description": "Guest-visible course label and sequence without staff release or kitchen scheduling policy.",
  "required": [
    "groupId",
    "name",
    "sequence"
  ],
  "example": {
    "groupId": "example",
    "name": "Example name",
    "sequence": 0
  }
}
PublicPreorderEligibilityDto

Native preorder eligibility for one published guest menu item.

serviceModesRequired

Native fulfillment modes allowed by the effective preorder catalog rule or package policy.

array
Full definition
{
  "type": "array",
  "description": "Native fulfillment modes allowed by the effective preorder catalog rule or package policy.",
  "items": {
    "type": "string",
    "enum": [
      "DINE_IN",
      "PICKUP",
      "DELIVERY",
      "CATERING"
    ],
    "example": "DINE_IN"
  },
  "example": [
    "DINE_IN"
  ]
}
minimumQuantityRequired

Minimum item quantity accepted by the native preorder catalog rule.

integer
Full definition
{
  "type": "integer",
  "minimum": 1,
  "description": "Minimum item quantity accepted by the native preorder catalog rule.",
  "example": 1
}
maximumQuantityRequired

Maximum item quantity, or null when no catalog maximum is configured.

integer · null
Full definition
{
  "type": "integer",
  "minimum": 1,
  "nullable": true,
  "description": "Maximum item quantity, or null when no catalog maximum is configured.",
  "example": 1
}
minimumLeadMinutesRequired

Minimum native lead time in minutes, or null when the fulfillment policy supplies it.

integer · null
Full definition
{
  "type": "integer",
  "minimum": 0,
  "nullable": true,
  "description": "Minimum native lead time in minutes, or null when the fulfillment policy supplies it.",
  "example": 0
}
bookingHorizonDaysRequired

Native booking horizon in days, or null when the fulfillment policy supplies it.

integer · null
Full definition
{
  "type": "integer",
  "minimum": 1,
  "nullable": true,
  "description": "Native booking horizon in days, or null when the fulfillment policy supplies it.",
  "example": 1
}
Full definition
{
  "type": "object",
  "properties": {
    "serviceModes": {
      "type": "array",
      "description": "Native fulfillment modes allowed by the effective preorder catalog rule or package policy.",
      "items": {
        "type": "string",
        "enum": [
          "DINE_IN",
          "PICKUP",
          "DELIVERY",
          "CATERING"
        ],
        "example": "DINE_IN"
      },
      "example": [
        "DINE_IN"
      ]
    },
    "minimumQuantity": {
      "type": "integer",
      "minimum": 1,
      "description": "Minimum item quantity accepted by the native preorder catalog rule.",
      "example": 1
    },
    "maximumQuantity": {
      "type": "integer",
      "minimum": 1,
      "nullable": true,
      "description": "Maximum item quantity, or null when no catalog maximum is configured.",
      "example": 1
    },
    "minimumLeadMinutes": {
      "type": "integer",
      "minimum": 0,
      "nullable": true,
      "description": "Minimum native lead time in minutes, or null when the fulfillment policy supplies it.",
      "example": 0
    },
    "bookingHorizonDays": {
      "type": "integer",
      "minimum": 1,
      "nullable": true,
      "description": "Native booking horizon in days, or null when the fulfillment policy supplies it.",
      "example": 1
    }
  },
  "description": "Native preorder eligibility for one published guest menu item.",
  "required": [
    "serviceModes",
    "minimumQuantity",
    "maximumQuantity",
    "minimumLeadMinutes",
    "bookingHorizonDays"
  ],
  "example": {
    "serviceModes": [
      "DINE_IN"
    ],
    "minimumQuantity": 1,
    "maximumQuantity": null,
    "minimumLeadMinutes": null,
    "bookingHorizonDays": null
  }
}
PublicPreorderFulfillmentOptionDto

Public off-premise service and customer timing intents under one active native fulfillment policy.

serviceModeRequired

Off-premise service with an active native fulfillment policy.

string
Full definition
{
  "type": "string",
  "enum": [
    "PICKUP",
    "DELIVERY"
  ],
  "description": "Off-premise service with an active native fulfillment policy.",
  "example": "PICKUP"
}
timingModesRequired

Supported customer timing intents under the active native policy. These hints reserve no capacity; availability and the authoritative quote decide whether a concrete request is eligible.

array
Full definition
{
  "type": "array",
  "minItems": 1,
  "maxItems": 2,
  "description": "Supported customer timing intents under the active native policy. These hints reserve no capacity; availability and the authoritative quote decide whether a concrete request is eligible.",
  "items": {
    "type": "string",
    "enum": [
      "ASAP",
      "SCHEDULED"
    ],
    "example": "ASAP"
  },
  "example": [
    "ASAP"
  ]
}
Full definition
{
  "type": "object",
  "properties": {
    "serviceMode": {
      "type": "string",
      "enum": [
        "PICKUP",
        "DELIVERY"
      ],
      "description": "Off-premise service with an active native fulfillment policy.",
      "example": "PICKUP"
    },
    "timingModes": {
      "type": "array",
      "minItems": 1,
      "maxItems": 2,
      "description": "Supported customer timing intents under the active native policy. These hints reserve no capacity; availability and the authoritative quote decide whether a concrete request is eligible.",
      "items": {
        "type": "string",
        "enum": [
          "ASAP",
          "SCHEDULED"
        ],
        "example": "ASAP"
      },
      "example": [
        "ASAP"
      ]
    }
  },
  "description": "Public off-premise service and customer timing intents under one active native fulfillment policy.",
  "required": [
    "serviceMode",
    "timingModes"
  ],
  "example": {
    "serviceMode": "PICKUP",
    "timingModes": [
      "ASAP"
    ]
  }
}
PublicPreorderCatalogVenueDto

Public native venue identity used to display the published preorder catalog.

idRequired

Native venue UUID owning the public preorder channel.

string · uuid
Full definition
{
  "type": "string",
  "format": "uuid",
  "description": "Native venue UUID owning the public preorder channel.",
  "example": "90513e6e-3429-4349-8afd-9c5ad89daff8"
}
nameRequired

Current public venue name.

string
Full definition
{
  "type": "string",
  "description": "Current public venue name.",
  "example": "Example name"
}
timeZoneRequired

Venue IANA timezone for scheduled fulfillment.

string
Full definition
{
  "type": "string",
  "description": "Venue IANA timezone for scheduled fulfillment.",
  "example": "Asia/Tbilisi"
}
currencyRequired

Venue currency used for published menu selling prices.

string
Full definition
{
  "type": "string",
  "pattern": "^[A-Z]{3}$",
  "description": "Venue currency used for published menu selling prices.",
  "example": "GEL"
}
Full definition
{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid",
      "description": "Native venue UUID owning the public preorder channel.",
      "example": "90513e6e-3429-4349-8afd-9c5ad89daff8"
    },
    "name": {
      "type": "string",
      "description": "Current public venue name.",
      "example": "Example name"
    },
    "timeZone": {
      "type": "string",
      "description": "Venue IANA timezone for scheduled fulfillment.",
      "example": "Asia/Tbilisi"
    },
    "currency": {
      "type": "string",
      "pattern": "^[A-Z]{3}$",
      "description": "Venue currency used for published menu selling prices.",
      "example": "GEL"
    }
  },
  "description": "Public native venue identity used to display the published preorder catalog.",
  "required": [
    "id",
    "name",
    "timeZone",
    "currency"
  ],
  "example": {
    "id": "90513e6e-3429-4349-8afd-9c5ad89daff8",
    "name": "Example name",
    "timeZone": "Asia/Tbilisi",
    "currency": "GEL"
  }
}
TranslatedErrorDto

Stable error envelope emitted by the global HTTP exception boundary. Domain-specific machine data, when present, is nested under details.

statusCodeRequired

HTTP status code repeated from the response.

integer
Full definition
{
  "type": "integer",
  "description": "HTTP status code repeated from the response.",
  "example": 400
}
errorRequired

Translation key for the HTTP category, such as errors:http.conflict. The specific cause is identified by code and translationKey.

string
Full definition
{
  "type": "string",
  "description": "Translation key for the HTTP category, such as errors:http.conflict. The specific cause is identified by code and translationKey.",
  "example": "errors.request.invalid"
}
codeRequired

Stable machine-readable domain code, or an HTTP_* fallback when no domain code is provided. Branch on this field and the HTTP status; localized wording never controls retries or business decisions.

string
Full definition
{
  "type": "string",
  "example": "HTTP_BAD_REQUEST",
  "description": "Stable machine-readable domain code, or an HTTP_* fallback when no domain code is provided. Branch on this field and the HTTP status; localized wording never controls retries or business decisions."
}
messageRequired

Translation key, identical to translationKey. The API does not return localized display text. Resolve the key and translationValues in the consuming application.

string
Full definition
{
  "type": "string",
  "example": "errors:http.badRequest",
  "description": "Translation key, identical to translationKey. The API does not return localized display text. Resolve the key and translationValues in the consuming application."
}
translationKeyRequired

Canonical translation key, identical to message. Status-specific errors:http.* keys cover unspecified failures. Public keys and EN/RU explanations are listed in Developers; unknown keys require a localized client fallback.

string
Full definition
{
  "type": "string",
  "example": "errors:http.badRequest",
  "description": "Canonical translation key, identical to message. Status-specific errors:http.* keys cover unspecified failures. Public keys and EN/RU explanations are listed in Developers; unknown keys require a localized client fallback."
}
translationValuesOptional

Optional scalar values for placeholders in the translation. Treat values as data, escape them when rendering, and never use them as translation options.

object
Full definition
{
  "type": "object",
  "additionalProperties": {
    "oneOf": [
      {
        "type": "string",
        "example": "example"
      },
      {
        "type": "number",
        "example": 0
      },
      {
        "type": "boolean",
        "example": true
      }
    ],
    "example": "example"
  },
  "description": "Optional scalar values for placeholders in the translation. Treat values as data, escape them when rendering, and never use them as translation options.",
  "example": {
    "exampleKey": "example"
  }
}
validationErrorsOptional

Field validation failures with translation keys and stable validator codes. Submitted values and raw validator text are not included.

array
Full definition
{
  "description": "Field validation failures with translation keys and stable validator codes. Submitted values and raw validator text are not included.",
  "type": "array",
  "items": {
    "$ref": "#/components/schemas/ValidationErrorDto"
  },
  "example": [
    {
      "field": "email",
      "translationKey": "validation:isEmail",
      "code": "isEmail",
      "message": "validation:isEmail"
    }
  ]
}
detailsOptional

Optional domain-specific blocker or validation details

oneOf
Full definition
{
  "description": "Optional domain-specific blocker or validation details",
  "oneOf": [
    {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/JsonValue"
      },
      "example": [
        "example"
      ]
    },
    {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/components/schemas/JsonValue"
      },
      "example": {
        "exampleKey": "example"
      }
    }
  ],
  "example": [
    "example"
  ]
}
Full definition
{
  "type": "object",
  "properties": {
    "statusCode": {
      "type": "integer",
      "description": "HTTP status code repeated from the response.",
      "example": 400
    },
    "error": {
      "type": "string",
      "description": "Translation key for the HTTP category, such as errors:http.conflict. The specific cause is identified by code and translationKey.",
      "example": "errors.request.invalid"
    },
    "code": {
      "type": "string",
      "example": "HTTP_BAD_REQUEST",
      "description": "Stable machine-readable domain code, or an HTTP_* fallback when no domain code is provided. Branch on this field and the HTTP status; localized wording never controls retries or business decisions."
    },
    "message": {
      "type": "string",
      "example": "errors:http.badRequest",
      "description": "Translation key, identical to translationKey. The API does not return localized display text. Resolve the key and translationValues in the consuming application."
    },
    "translationKey": {
      "type": "string",
      "example": "errors:http.badRequest",
      "description": "Canonical translation key, identical to message. Status-specific errors:http.* keys cover unspecified failures. Public keys and EN/RU explanations are listed in Developers; unknown keys require a localized client fallback."
    },
    "translationValues": {
      "type": "object",
      "additionalProperties": {
        "oneOf": [
          {
            "type": "string",
            "example": "example"
          },
          {
            "type": "number",
            "example": 0
          },
          {
            "type": "boolean",
            "example": true
          }
        ],
        "example": "example"
      },
      "description": "Optional scalar values for placeholders in the translation. Treat values as data, escape them when rendering, and never use them as translation options.",
      "example": {
        "exampleKey": "example"
      }
    },
    "validationErrors": {
      "description": "Field validation failures with translation keys and stable validator codes. Submitted values and raw validator text are not included.",
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/ValidationErrorDto"
      },
      "example": [
        {
          "field": "email",
          "translationKey": "validation:isEmail",
          "code": "isEmail",
          "message": "validation:isEmail"
        }
      ]
    },
    "details": {
      "description": "Optional domain-specific blocker or validation details",
      "oneOf": [
        {
          "type": "array",
          "items": {
            "$ref": "#/components/schemas/JsonValue"
          },
          "example": [
            "example"
          ]
        },
        {
          "type": "object",
          "additionalProperties": {
            "$ref": "#/components/schemas/JsonValue"
          },
          "example": {
            "exampleKey": "example"
          }
        }
      ],
      "example": [
        "example"
      ]
    }
  },
  "required": [
    "statusCode",
    "error",
    "code",
    "message",
    "translationKey"
  ],
  "description": "Stable error envelope emitted by the global HTTP exception boundary. Domain-specific machine data, when present, is nested under details.",
  "example": {
    "statusCode": 400,
    "error": "errors:http.badRequest",
    "code": "HTTP_BAD_REQUEST",
    "message": "errors:http.badRequest",
    "translationKey": "errors:http.badRequest"
  }
}
ValidationErrorDto

Field validation failure with a field path, stable validator code and a translation key. Human-readable text belongs to the consuming application.

fieldRequired

Public field path. Nested properties and array indices are separated by dots.

string
Full definition
{
  "type": "string",
  "example": "email",
  "description": "Public field path. Nested properties and array indices are separated by dots."
}
translationKeyRequired

Translation key for this validator, identical to message. Resolve it using a client dictionary; see the public Developers error catalog.

string
Full definition
{
  "type": "string",
  "example": "validation:isEmail",
  "description": "Translation key for this validator, identical to message. Resolve it using a client dictionary; see the public Developers error catalog."
}
codeRequired

Stable validator identifier for this field failure. Custom validators may define additional identifiers.

string
Full definition
{
  "type": "string",
  "example": "isEmail",
  "description": "Stable validator identifier for this field failure. Custom validators may define additional identifiers."
}
messageRequired

Translation key describing this field validation failure, identical to translationKey. Submitted values and validator prose are not included.

string
Full definition
{
  "type": "string",
  "example": "validation:isEmail",
  "description": "Translation key describing this field validation failure, identical to translationKey. Submitted values and validator prose are not included."
}
translationValuesOptional

Optional scalar values for placeholders in the translation. Treat values as data, escape them when rendering, and never use them as translation options.

object
Full definition
{
  "type": "object",
  "additionalProperties": {
    "oneOf": [
      {
        "type": "string",
        "example": "example"
      },
      {
        "type": "number",
        "example": 0
      },
      {
        "type": "boolean",
        "example": true
      }
    ],
    "example": "example"
  },
  "description": "Optional scalar values for placeholders in the translation. Treat values as data, escape them when rendering, and never use them as translation options.",
  "example": {
    "exampleKey": "example"
  }
}
Full definition
{
  "type": "object",
  "properties": {
    "field": {
      "type": "string",
      "example": "email",
      "description": "Public field path. Nested properties and array indices are separated by dots."
    },
    "translationKey": {
      "type": "string",
      "example": "validation:isEmail",
      "description": "Translation key for this validator, identical to message. Resolve it using a client dictionary; see the public Developers error catalog."
    },
    "code": {
      "type": "string",
      "example": "isEmail",
      "description": "Stable validator identifier for this field failure. Custom validators may define additional identifiers."
    },
    "message": {
      "type": "string",
      "example": "validation:isEmail",
      "description": "Translation key describing this field validation failure, identical to translationKey. Submitted values and validator prose are not included."
    },
    "translationValues": {
      "type": "object",
      "additionalProperties": {
        "oneOf": [
          {
            "type": "string",
            "example": "example"
          },
          {
            "type": "number",
            "example": 0
          },
          {
            "type": "boolean",
            "example": true
          }
        ],
        "example": "example"
      },
      "description": "Optional scalar values for placeholders in the translation. Treat values as data, escape them when rendering, and never use them as translation options.",
      "example": {
        "exampleKey": "example"
      }
    }
  },
  "required": [
    "field",
    "translationKey",
    "code",
    "message"
  ],
  "description": "Field validation failure with a field path, stable validator code and a translation key. Human-readable text belongs to the consuming application.",
  "example": {
    "field": "email",
    "translationKey": "validation:isEmail",
    "code": "isEmail",
    "message": "validation:isEmail"
  }
}
JsonValue

Recursively JSON-safe value used only where the owning contract intentionally allows free-form structured data.

Full definition
{
  "oneOf": [
    {
      "type": "string",
      "nullable": true,
      "example": "example"
    },
    {
      "type": "number",
      "example": 0
    },
    {
      "type": "boolean",
      "example": true
    },
    {
      "type": "array",
      "items": {
        "$ref": "#/components/schemas/JsonValue"
      },
      "example": [
        "example"
      ]
    },
    {
      "type": "object",
      "additionalProperties": {
        "$ref": "#/components/schemas/JsonValue"
      },
      "example": {
        "exampleKey": "example"
      }
    }
  ],
  "description": "Recursively JSON-safe value used only where the owning contract intentionally allows free-form structured data.",
  "example": "example"
}

Hallify uses essential cookies and optional analytics.

Essential cookies keep sign-in, locale, and theme preferences working. Analytics is off until you choose to allow it.