Design a modifier schema with min_permitted and max_permitted counts per group, and nested modifier groups where an option unlocks a sub-group (e.g. 'add cheese' reveals 'cheese type')
Validate modifier constraints in your master menu system before publishing — a required group with zero options is an invalid state that breaks ordering
Map your modifier schema to each platform's representation: DoorDash Menu API uses nested extras/options, Uber Eats uses modifier_groups with nested lists, Olo uses options within option groups
Test modifier rendering end-to-end on each channel by placing test orders that exercise required, optional, and nested modifier groups
Handle platform-imposed limits on modifier group depth or count and flatten or restructure modifiers that exceed those limits
Known gotchas
Each delivery platform enforces different maximum nesting depths for modifier groups — what is valid on one channel may be rejected or silently truncated on another
Price overrides at the modifier level must be expressed as incremental prices (delta from base), not absolute prices, on most platforms
Missing or incorrect min_permitted/max_permitted values cause ordering failures at checkout rather than at menu publish time, making them hard to catch without end-to-end order testing
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp