{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/backresto-com/json-schema/backresto-com-allergen-menu-schema.json",
  "title": "AllergenMenu",
  "x-generated": "2026-11-02",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/backresto-com-openapi.json#/components/schemas/AllergenMenu",
  "type": "object",
  "required": [
    "categories"
  ],
  "properties": {
    "categories": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "name",
          "items"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Menu section (e.g. Entrées, Plats, Desserts)."
          },
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "name",
                "description",
                "allergens"
              ],
              "properties": {
                "name": {
                  "type": "string",
                  "description": "Dish name as written on the menu."
                },
                "description": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "allergens": {
                  "$ref": "#/$defs/AllergenFlags"
                }
              }
            }
          }
        }
      }
    }
  },
  "$defs": {
    "AllergenFlags": {
      "type": "object",
      "description": "One boolean per EU regulated allergen.",
      "required": [
        "gluten",
        "crustaceans",
        "eggs",
        "fish",
        "peanuts",
        "soybeans",
        "milk",
        "tree_nuts",
        "celery",
        "mustard",
        "sesame",
        "sulphites",
        "lupin",
        "molluscs"
      ],
      "properties": {
        "gluten": {
          "type": "boolean"
        },
        "crustaceans": {
          "type": "boolean"
        },
        "eggs": {
          "type": "boolean"
        },
        "fish": {
          "type": "boolean"
        },
        "peanuts": {
          "type": "boolean"
        },
        "soybeans": {
          "type": "boolean"
        },
        "milk": {
          "type": "boolean"
        },
        "tree_nuts": {
          "type": "boolean"
        },
        "celery": {
          "type": "boolean"
        },
        "mustard": {
          "type": "boolean"
        },
        "sesame": {
          "type": "boolean"
        },
        "sulphites": {
          "type": "boolean"
        },
        "lupin": {
          "type": "boolean"
        },
        "molluscs": {
          "type": "boolean"
        }
      }
    }
  }
}