{ "$schema": "http://json-schema.org/draft-07/schema#", "title": "Menu Board", "description": "Kraft-paper menu card with sections of items (espresso, filter, pastry, etc.)", "type": "object", "properties": { "title": { "type": "string", "title": "Title", "description": "Heading shown at the top of the menu (e.g. \"Menu\", \"Today's Pour\")", "default": "Menu", "x-editor": "text" }, "sections": { "type": "array", "title": "Sections", "description": "Menu sections such as Espresso, Filter, Pastry", "default": [], "x-editor": "array", "items": { "type": "object", "properties": { "name": { "type": "string", "title": "Section Name", "description": "Section heading (e.g. \"Espresso\")", "x-editor": "text" }, "items": { "type": "array", "title": "Items", "description": "Items in this section", "x-editor": "collection", "items": { "type": "object", "properties": { "name": { "type": "string", "title": "Name", "description": "Item name (e.g. \"Flat White\")", "x-editor": "text" }, "price": { "type": "string", "title": "Price", "description": "Price (e.g. \"5.50\")", "x-editor": "text" }, "note": { "type": "string", "title": "Note", "description": "Optional descriptive line (e.g. tasting notes)", "x-editor": "text" }, "allergens": { "type": "string", "title": "Allergens", "description": "Free-text allergen list (e.g. \"contains dairy, gluten\")", "x-editor": "text" } }, "required": ["name"] } } }, "required": ["name"] } } } }