{
  "_comment": "Standard CATA API output — all 3 product models shown. itemCode uses SKU (VERIFIED). Modifier group itemCodes use MC_{id} format. Bundle section itemCodes use CPS_{id} format.",

  "products": [
    {
      "_model": "Model 1: Simple product (no modifiers, no bundle)",
      "itemCode": "SKU-BM-001",
      "name": "Blueberry Muffin",
      "description": "",
      "basePrice": 4.25,
      "visible": true,
      "isBundle": false,
      "isVariant": false,
      "modifierGroups": [],
      "bundleSections": []
    },
    {
      "_model": "Model 2: Product with modifiers (via ProductModifierClass + ProductModifier)",
      "itemCode": "SKU-FW-001",
      "name": "Flat White",
      "description": "Smooth espresso with steamed milk",
      "basePrice": 5.50,
      "visible": true,
      "isBundle": false,
      "isVariant": false,
      "modifierGroups": [
        {
          "itemCode": "MC_201",
          "name": "Milk Options",
          "inputType": "SINGLE",
          "minSelect": 0,
          "maxSelect": 1,
          "sortNum": 1,
          "options": [
            {
              "itemCode": "MOD-OAT-001",
              "name": "Oat Milk",
              "additionalPrice": 0.75,
              "asDefault": false,
              "sortNum": 1
            },
            {
              "itemCode": "MOD-ALM-001",
              "name": "Almond Milk",
              "additionalPrice": 0.75,
              "asDefault": false,
              "sortNum": 2
            },
            {
              "itemCode": "MOD-SOY-001",
              "name": "Soy Milk",
              "additionalPrice": 0.50,
              "asDefault": false,
              "sortNum": 3
            }
          ]
        },
        {
          "itemCode": "MC_202",
          "name": "Size",
          "inputType": "SINGLE",
          "minSelect": 1,
          "maxSelect": 1,
          "sortNum": 2,
          "options": [
            {
              "itemCode": "MOD-REG-001",
              "name": "Regular (8oz)",
              "additionalPrice": 0.00,
              "asDefault": true,
              "sortNum": 1
            },
            {
              "itemCode": "MOD-LRG-001",
              "name": "Large (12oz)",
              "additionalPrice": 1.50,
              "asDefault": false,
              "sortNum": 2
            }
          ]
        }
      ],
      "bundleSections": []
    },
    {
      "_model": "Model 2: Product with modifiers",
      "itemCode": "SKU-AT-001",
      "name": "Avocado Toast",
      "description": "Sourdough bread topped with fresh avocado, cherry tomatoes, and feta",
      "basePrice": 12.00,
      "visible": true,
      "isBundle": false,
      "isVariant": false,
      "modifierGroups": [
        {
          "itemCode": "MC_203",
          "name": "Extra Toppings",
          "inputType": "MULTI",
          "minSelect": 0,
          "maxSelect": 3,
          "sortNum": 1,
          "options": [
            {
              "itemCode": "MOD-EGG-001",
              "name": "Poached Egg",
              "additionalPrice": 2.00,
              "asDefault": false,
              "sortNum": 1
            },
            {
              "itemCode": "MOD-SAL-001",
              "name": "Smoked Salmon",
              "additionalPrice": 3.50,
              "asDefault": false,
              "sortNum": 2
            }
          ]
        }
      ],
      "bundleSections": []
    },
    {
      "_model": "Model 3: Bundle (Group Combo) — detected via is_combo > 0",
      "itemCode": "SKU-LC-001",
      "name": "Lunch Combo",
      "description": "Choose a main and a drink",
      "basePrice": 15.00,
      "visible": true,
      "isBundle": true,
      "isVariant": false,
      "modifierGroups": [],
      "bundleSections": [
        {
          "itemCode": "CPS_401",
          "name": "Choose a Main",
          "minSelection": 1,
          "maxSelection": 1,
          "sortNum": 0,
          "items": [
            {
              "itemCode": "SKU-AT-001",
              "price": null,
              "sortNum": 0
            },
            {
              "itemCode": "SKU-FW-001",
              "price": 2.00,
              "sortNum": 1
            }
          ]
        },
        {
          "itemCode": "CPS_402",
          "name": "Choose a Drink",
          "minSelection": 1,
          "maxSelection": 1,
          "sortNum": 1,
          "items": [
            {
              "itemCode": "SKU-MW-001",
              "price": null,
              "sortNum": 0
            },
            {
              "itemCode": "SKU-FW-001",
              "price": 1.50,
              "sortNum": 1
            }
          ]
        }
      ]
    },
    {
      "_model": "Model 1: Simple product (also used as bundle child)",
      "itemCode": "SKU-MW-001",
      "name": "Mineral Water",
      "description": "Still mineral water 500ml",
      "basePrice": 2.50,
      "visible": true,
      "isBundle": false,
      "isVariant": false,
      "modifierGroups": [],
      "bundleSections": []
    }
  ]
}
