There’s many way to build a data structure. And sometimes several good or acceptable way. For a CMS website, the structure that’s the more logic is adapted to how you want the data to be displayed and sorted.
In your case, the logical way to go is to consider 1 plate or serving as the base item. After all, that’s one unit you sell. So an item should be a dish, a dessert, a side dish, a drink, a bottle of anything, an entrée… So you should have a general collection called food with all of that inside it.
Then you should have a type collection. For all the types we cited before: entrée, dish, dessert, drink etc.
The food items can have a switch for wether they’re vegetarian or not. But they could also have an option field for more options: vegan, vegetarian, gluten-free. That classification can also be a collection on its own, referenced inside of the items (or multi referenced, as there can be some gluten-free vegetarian meals, I guess).
This way you can have your collection filtered on the type of food, and you can have for example a collection restricted to a type of food and vegetarian (you can use a tab element for that, with the full lunch collection list on the first tab, and the filtered list to vegetarian meals only on the second tab.