What are "variants" and "options" on an item?

Options and variant are how we modify items to add or subtract detail, without requiring a completely new menu item. For instance, it would be quite a pain if you needed a separate menu item for a 'Flat White' and say, a 'Flat White with One Sugar'. As you could imagine that would get out of hand pretty quick.

Here's an example of a menu item including options and variants.

{
  "name": "Toasted Sourdough & Eggs",
  "tags": [
    "Breakfast",
    "Lunch"
  ],
  "posId": "sourdough_eggs",
  "options": [
    {
      "max": "1",
      "min": "1",
      "name": "How would like the eggs cooked?",
      "posId": "egg_cook_type",
      "variants": [
        {
          "name": "Poached",
          "posId": "poached_egg",
          "price": "10"
        },
        {
          "name": "Scrambled",
          "posId": "scrambled_egg",
          "price": "10"
        },
        {
          "name": "Fried",
          "posId": "fried_egg",
          "price": "10"
        },
        {
          "name": "Hard Boiled",
          "posId": "hard_boiled_eggs",
          "price": "10"
        }
      ]
    },
    {
      "max": "3",
      "min": "0",
      "name": "Extras",
      "posId": "egg_extras",
      "variants": [
        {
          "name": "Bacon",
          "posId": "extra_bacon",
          "price": "200"
        },
        {
          "name": "Sliced Avocado",
          "posId": "extra_sliced_avocado",
          "price": "420"
        },
        {
          "name": "Chorizo",
          "posId": "extra_chorizo",
          "price": "420"
        }
      ]
    }
  ],
  "surcounts": [],
  "unitPrice": "1100",
  "description": "Just ye old classic"
}

In this case, on the 'Toasted Sourdough & Eggs' item, there are two options: One is the cooking method of the eggs, which is mandatory. Two, is optional extras such as chorizo and bacon to go with your eggs, at a fee of course.

More information can be found about variants here.