{"id": "bad-flour-vs-rice", "modality": "text", "source": "grounded_bad_cases", "text": "Cooked white rice, 200 g", "calories": 260, "protein_g": 5.4, "carbs_g": 56.0, "fat_g": 0.6, "mass_g": 200, "notes": "form_mismatch: must not pick rice flour", "expect_avoid_tokens": ["flour"], "failure_modes": ["identity", "form"]}
{"id": "bad-oatmeal-vs-pie", "modality": "text", "source": "grounded_bad_cases", "text": "Oatmeal, cooked, 1 cup (240 g)", "calories": 170, "protein_g": 6.0, "carbs_g": 29.0, "fat_g": 3.6, "mass_g": 240, "notes": "form_mismatch: must not pick oatmeal pie", "expect_avoid_tokens": ["pie", "cookie", "cake"], "failure_modes": ["identity", "form"]}
{"id": "bad-beer-vs-dip", "modality": "text", "source": "grounded_bad_cases", "text": "Beer, 330 ml", "calories": 141, "protein_g": 1.2, "carbs_g": 11.6, "fat_g": 0.0, "mass_g": 330, "notes": "beverage form: must prefer beer over onion dip", "expect_prefer_tokens": ["beer"], "expect_avoid_tokens": ["dip"], "failure_modes": ["identity", "form"]}
{"id": "bad-raw-vs-cooked-chicken", "modality": "text", "source": "grounded_bad_cases", "text": "Chicken breast, roasted, 150 g", "calories": 248, "protein_g": 46.5, "carbs_g": 0.0, "fat_g": 5.4, "mass_g": 150, "notes": "prefer cooked/roasted over raw breast", "expect_prefer_tokens": ["cooked", "roasted", "grilled"], "failure_modes": ["identity", "form"]}
{"id": "bad-dry-oats-vs-cooked", "modality": "text", "source": "grounded_bad_cases", "text": "Cooked oatmeal porridge, 240 g", "calories": 170, "protein_g": 6.0, "carbs_g": 29.0, "fat_g": 3.6, "mass_g": 240, "notes": "cooked porridge vs dry rolled oats", "expect_avoid_tokens": ["dry", "rolled", "flour"], "failure_modes": ["identity", "form"]}
{"id": "bad-tbsp-peanut-butter", "modality": "text", "source": "grounded_bad_cases", "text": "Peanut butter, 2 tbsp", "calories": 188, "protein_g": 8.0, "carbs_g": 6.0, "fat_g": 16.0, "mass_g": 32, "notes": "portion: quantity+unit must resolve ~32g", "expected_grams": 32, "failure_modes": ["portion"]}
{"id": "bad-slice-bread", "modality": "text", "source": "grounded_bad_cases", "text": "Whole wheat bread, 2 slices", "calories": 138, "protein_g": 5.6, "carbs_g": 24.0, "fat_g": 2.2, "mass_g": 56, "notes": "portion: 2 slices", "expected_grams": 56, "failure_modes": ["portion"]}
{"id": "bad-cup-milk", "modality": "text", "source": "grounded_bad_cases", "text": "Whole milk, 1 cup", "calories": 149, "protein_g": 8.0, "carbs_g": 12.0, "fat_g": 8.0, "mass_g": 244, "notes": "portion: household cup", "expected_grams": 244, "failure_modes": ["portion"]}
{"id": "bad-ml-coffee", "modality": "text", "source": "grounded_bad_cases", "text": "Black coffee, 240 ml", "calories": 2, "protein_g": 0.3, "carbs_g": 0.0, "fat_g": 0.0, "mass_g": 240, "notes": "portion: ml≈g for dilute drinks", "expected_grams": 240, "failure_modes": ["portion"]}
{"id": "bad-multi-eggs-toast", "modality": "text", "source": "grounded_bad_cases", "text": "2 scrambled eggs with butter and 1 slice toast", "calories": 320, "protein_g": 14.0, "carbs_g": 15.0, "fat_g": 22.0, "mass_g": null, "notes": "multi-item: must finalize ≥2 components", "min_components": 2, "failure_modes": ["orchestration", "identity"]}
{"id": "bad-pizza-coke", "modality": "text", "source": "grounded_bad_cases", "text": "1 slice cheese pizza and a can of cola", "calories": 400, "protein_g": 12.0, "carbs_g": 50.0, "fat_g": 14.0, "mass_g": null, "notes": "multi-item solid+beverage", "min_components": 2, "failure_modes": ["orchestration", "identity", "form"]}
{"id": "bad-locale-pretzel-de", "modality": "text", "source": "grounded_bad_cases", "text": "1 Laugenbrezel, 85 g", "calories": 230, "protein_g": 7.0, "carbs_g": 45.0, "fat_g": 2.5, "mass_g": 85, "notes": "locale DE synonym → pretzel/bread", "synonyms": ["pretzel", "brezel", "bread"], "failure_modes": ["identity", "query"]}
{"id": "bad-yoghurt-synonym", "modality": "text", "source": "grounded_bad_cases", "text": "Plain yoghurt, 170 g", "calories": 100, "protein_g": 17.0, "carbs_g": 6.0, "fat_g": 0.7, "mass_g": 170, "notes": "yoghurt/yogurt synonym normalization", "synonyms": ["yogurt", "yoghurt"], "failure_modes": ["query", "identity"]}
{"id": "bad-empty-finalize", "modality": "text", "source": "grounded_bad_cases", "text": "Mystery stew with unknown ingredients", "calories": 250, "protein_g": 15.0, "carbs_g": 20.0, "fat_g": 10.0, "mass_g": 300, "notes": "must reject_to_estimate or needs_user_choice; never silent 0 kcal", "allow_estimate": true, "forbid_silent_zero": true, "failure_modes": ["fallback", "orchestration"]}
{"id": "bad-invalid-source-id", "modality": "text", "source": "grounded_bad_cases", "text": "Banana, raw, 118 g", "calories": 105, "protein_g": 1.3, "carbs_g": 27.0, "fat_g": 0.4, "mass_g": 118, "notes": "finalize with unseen source_id must not scale; route to choice or re-search", "failure_modes": ["orchestration", "data"]}
