{
  "schema_version": "3.4.0",
  "generated_at": "2026-09-12T21:50:03.574588Z",
  "language": "pt-BR",
  "source_artifact": {
    "filename": "Plano_dieta_variada_macros_receitas.docx",
    "note": "Conteúdo reaproveitado do DOCX gerado neste chat; alternativas contendo abobrinha, chuchu ou beterraba foram removidas antes da expansão."
  },
  "goals_and_constraints": {
    "primary_goal": "redução de gordura corporal com prioridade em preservar massa magra durante treino de força 5x/semana",
    "lactose": "intolerância leve; priorizar versões zero lactose quando disponíveis",
    "excluded_ingredients": [
      "abobrinha",
      "chuchu",
      "beterraba"
    ],
    "macro_priority": "manter energia e macronutrientes próximos aos alvos derivados da dieta original",
    "culinary_rule": "receitas e técnicas devem ser baseadas em referências culinárias externas; adaptações são registradas e ingredientes materialmente calóricos são contabilizados"
  },
  "methodology": {
    "nutrition": "macros recalculados ingrediente a ingrediente a partir da base nutricional; receitas da internet são usadas como evidência culinária, não como fonte única dos macros",
    "calculation": "porções novas ajustadas por otimização numérica (scipy least_squares) e busca local em gramas inteiros; totais e desvios recalculados por script",
    "trace_ingredients": "ervas, especiarias, ácidos e adoçantes sem calorias podem ser tratados como traço quando o impacto agregado estimado é culinariamente pequeno; óleos, laticínios, frutas, castanhas e vegetais em quantidades materiais são contabilizados",
    "sweet_breakfast_note": "substituir parte da proteína por Whey aumenta carboidratos em relação ao alvo original do café da manhã; as opções doces preservam principalmente proteína, gordura e energia e explicitam o desvio de carboidrato",
    "not_medical_advice": "Plano de variedade culinária baseado na dieta fornecida; ajustes clínicos ou terapêuticos devem ser discutidos com a nutricionista responsável."
  },
  "targets": {
    "breakfast": {
      "label": "08:00",
      "kcal": 488.0,
      "protein_g": 53.68,
      "carbs_g": 2.09,
      "fat_g": 29.32
    },
    "lunch": {
      "label": "12:00",
      "kcal": 629.0,
      "protein_g": 77.05,
      "carbs_g": 9.17,
      "fat_g": 30.69
    },
    "afternoon_snack_sweet": {
      "label": "16:00 — opção doce",
      "kcal": 129.0,
      "protein_g": 16.09,
      "carbs_g": 6.97,
      "fat_g": 4.29
    },
    "afternoon_snack_savory": {
      "label": "16:00 — opção salgada",
      "kcal": 349.8,
      "protein_g": 44.05,
      "carbs_g": 0.0,
      "fat_g": 17.98
    },
    "dinner": {
      "label": "22:00",
      "kcal": 685.3,
      "protein_g": 78.8,
      "carbs_g": 12.98,
      "fat_g": 35.08
    }
  },
  "ingredients": {
    "ING001": {
      "id": "ING001",
      "name": "Ovo de galinha inteiro cru",
      "notes": null,
      "measurement_state": "raw_ready_to_use",
      "nutrition_reference": {
        "state_name": "Ovo de galinha inteiro cru",
        "per_100g": {
          "kcal": 135.0,
          "protein_g": 11.3,
          "carbs_g": 2.13,
          "fat_g": 9.05
        },
        "source_id": "SRC-5DAF94EBE0",
        "note": "O estado de pesagem e o estado da referência nutricional coincidem para este item."
      },
      "yield_to_nutrition_reference": null
    },
    "ING004": {
      "id": "ING004",
      "name": "Queijo muçarela (usar versão zero lactose quando disponível)",
      "notes": "Macros de muçarela padrão; versão zero lactose pode variar por marca.",
      "measurement_state": "as_purchased_ready_to_use",
      "nutrition_reference": {
        "state_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
        "per_100g": {
          "kcal": 330.0,
          "protein_g": 22.6,
          "carbs_g": 3.0,
          "fat_g": 25.2
        },
        "source_id": "SRC-996808AA1C",
        "note": "O estado de pesagem e o estado da referência nutricional coincidem para este item."
      },
      "yield_to_nutrition_reference": null
    },
    "ING005": {
      "id": "ING005",
      "name": "Queijo tipo parmesão",
      "notes": "Usar porção pequena e verificar tolerância/rótulo; pode ser trocado por versão sem lactose quando disponível.",
      "measurement_state": "as_purchased_ready_to_use",
      "nutrition_reference": {
        "state_name": "Queijo tipo parmesão",
        "per_100g": {
          "kcal": 448.0,
          "protein_g": 31.9,
          "carbs_g": 2.48,
          "fat_g": 35.0
        },
        "source_id": "SRC-33060FD30F",
        "note": "O estado de pesagem e o estado da referência nutricional coincidem para este item."
      },
      "yield_to_nutrition_reference": null
    },
    "ING006": {
      "id": "ING006",
      "name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
      "notes": null,
      "measurement_state": "raw_ready_to_cook",
      "nutrition_reference": {
        "state_name": "Peito de frango sem pele, cozido, drenado, sem óleo",
        "per_100g": {
          "kcal": 154.0,
          "protein_g": 31.3,
          "carbs_g": 0.0,
          "fat_g": 3.16
        },
        "source_id": "SRC-C49CD862DD",
        "note": "Macros das refeições permanecem ancorados no estado consumido/cozido da versão anterior; o peso principal agora é cru e é convertido pelo fator de rendimento."
      },
      "yield_to_nutrition_reference": {
        "default_factor": 0.73,
        "source_id": "SRC-YIELD-USDA-MEAT",
        "quality": "medium_high_proxy",
        "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
        "formula": "nutrition_basis_grams = raw_grams × factor"
      }
    },
    "ING007": {
      "id": "ING007",
      "name": "Acém bovino cru, moído, pronto para cozinhar",
      "notes": null,
      "measurement_state": "raw_ready_to_cook",
      "nutrition_reference": {
        "state_name": "Acém moído cozido",
        "per_100g": {
          "kcal": 212.0,
          "protein_g": 26.7,
          "carbs_g": 0.0,
          "fat_g": 10.9
        },
        "source_id": "SRC-996808AA1C",
        "note": "Macros das refeições permanecem ancorados no estado consumido/cozido da versão anterior; o peso principal agora é cru e é convertido pelo fator de rendimento."
      },
      "yield_to_nutrition_reference": {
        "default_factor": 0.75,
        "source_id": "SRC-YIELD-USDA-MEAT",
        "quality": "medium_proxy",
        "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
        "formula": "nutrition_basis_grams = raw_grams × factor"
      }
    },
    "ING008": {
      "id": "ING008",
      "name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
      "notes": "Entrada TBCA de patinho bovino grelhado, usada como equivalente magro de carne bovina.",
      "measurement_state": "raw_ready_to_cook",
      "nutrition_reference": {
        "state_name": "Patinho grelhado sem óleo",
        "per_100g": {
          "kcal": 211.0,
          "protein_g": 36.0,
          "carbs_g": 0.0,
          "fat_g": 7.5
        },
        "source_id": "SRC-4CEF6F81D9",
        "note": "Macros das refeições permanecem ancorados no estado consumido/cozido da versão anterior; o peso principal agora é cru e é convertido pelo fator de rendimento."
      },
      "yield_to_nutrition_reference": {
        "default_factor": 0.65,
        "source_id": "SRC-YIELD-USDA-MEAT",
        "quality": "medium_high_proxy",
        "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
        "formula": "nutrition_basis_grams = raw_grams × factor"
      }
    },
    "ING009": {
      "id": "ING009",
      "name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
      "notes": "Entrada TBCA de lombo suíno assado sem óleo.",
      "measurement_state": "raw_ready_to_cook",
      "nutrition_reference": {
        "state_name": "Lombo suíno assado sem óleo",
        "per_100g": {
          "kcal": 200.0,
          "protein_g": 35.7,
          "carbs_g": 0.0,
          "fat_g": 6.4
        },
        "source_id": "SRC-4CEF6F81D9",
        "note": "Macros das refeições permanecem ancorados no estado consumido/cozido da versão anterior; o peso principal agora é cru e é convertido pelo fator de rendimento."
      },
      "yield_to_nutrition_reference": {
        "default_factor": 0.64,
        "source_id": "SRC-YIELD-USDA-MEAT",
        "quality": "high",
        "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
        "formula": "nutrition_basis_grams = raw_grams × factor"
      }
    },
    "ING010": {
      "id": "ING010",
      "name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
      "notes": "Entrada TBCA de tilápia cozida sem óleo.",
      "measurement_state": "raw_ready_to_cook",
      "nutrition_reference": {
        "state_name": "Tilápia cozida sem óleo",
        "per_100g": {
          "kcal": 112.0,
          "protein_g": 23.1,
          "carbs_g": 0.0,
          "fat_g": 2.12
        },
        "source_id": "SRC-4CEF6F81D9",
        "note": "Macros das refeições permanecem ancorados no estado consumido/cozido da versão anterior; o peso principal agora é cru e é convertido pelo fator de rendimento."
      },
      "yield_to_nutrition_reference": {
        "default_factor": 0.7,
        "source_id": "SRC-YIELD-USDA-MEAT",
        "quality": "medium_proxy",
        "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
        "formula": "nutrition_basis_grams = raw_grams × factor"
      }
    },
    "ING011": {
      "id": "ING011",
      "name": "Iogurte natural integral (preferir zero lactose)",
      "notes": "Macros de iogurte natural padrão; confirmar no rótulo da versão zero lactose.",
      "measurement_state": "as_purchased_ready_to_use",
      "nutrition_reference": {
        "state_name": "Iogurte natural integral (preferir zero lactose)",
        "per_100g": {
          "kcal": 51.0,
          "protein_g": 4.1,
          "carbs_g": 1.9,
          "fat_g": 3.0
        },
        "source_id": "SRC-996808AA1C",
        "note": "O estado de pesagem e o estado da referência nutricional coincidem para este item."
      },
      "yield_to_nutrition_reference": null
    },
    "ING012": {
      "id": "ING012",
      "name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
      "notes": "Derivado de 120 kcal, 23 g P, 2,3 g C e 2,1 g G por 30 g; confirmar o rótulo do seu pote.",
      "measurement_state": "as_purchased_ready_to_use",
      "nutrition_reference": {
        "state_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
        "per_100g": {
          "kcal": 400.0,
          "protein_g": 76.67,
          "carbs_g": 7.67,
          "fat_g": 7.0
        },
        "source_id": "SRC-721CE1AA4E",
        "note": "O estado de pesagem e o estado da referência nutricional coincidem para este item."
      },
      "yield_to_nutrition_reference": null
    },
    "ING013": {
      "id": "ING013",
      "name": "Morango cru",
      "notes": null,
      "measurement_state": "raw_ready_to_use",
      "nutrition_reference": {
        "state_name": "Morango cru",
        "per_100g": {
          "kcal": 30.0,
          "protein_g": 0.82,
          "carbs_g": 6.54,
          "fat_g": 0.4
        },
        "source_id": "SRC-4CEF6F81D9",
        "note": "O estado de pesagem e o estado da referência nutricional coincidem para este item."
      },
      "yield_to_nutrition_reference": null
    },
    "ING014": {
      "id": "ING014",
      "name": "Mamão papaia cru",
      "notes": null,
      "measurement_state": "raw_ready_to_use",
      "nutrition_reference": {
        "state_name": "Mamão papaia cru",
        "per_100g": {
          "kcal": 43.0,
          "protein_g": 0.5,
          "carbs_g": 10.2,
          "fat_g": 0.2
        },
        "source_id": "SRC-4CEF6F81D9",
        "note": "O estado de pesagem e o estado da referência nutricional coincidem para este item."
      },
      "yield_to_nutrition_reference": null
    },
    "ING015": {
      "id": "ING015",
      "name": "Banana prata crua",
      "notes": null,
      "measurement_state": "raw_ready_to_use",
      "nutrition_reference": {
        "state_name": "Banana prata crua",
        "per_100g": {
          "kcal": 107.0,
          "protein_g": 1.11,
          "carbs_g": 25.9,
          "fat_g": 0.28
        },
        "source_id": "SRC-4CEF6F81D9",
        "note": "O estado de pesagem e o estado da referência nutricional coincidem para este item."
      },
      "yield_to_nutrition_reference": null
    },
    "ING017": {
      "id": "ING017",
      "name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
      "notes": null,
      "measurement_state": "raw_ready_to_cook",
      "nutrition_reference": {
        "state_name": "Abóbora moranga cozida e drenada",
        "per_100g": {
          "kcal": 17.0,
          "protein_g": 1.21,
          "carbs_g": 3.98,
          "fat_g": 0.14
        },
        "source_id": "SRC-4CEF6F81D9",
        "note": "Macros das refeições permanecem ancorados no estado consumido/cozido da versão anterior; o peso principal agora é cru e é convertido pelo fator de rendimento."
      },
      "yield_to_nutrition_reference": {
        "default_factor": 0.28,
        "source_id": "SRC-YIELD-USDA-VEG",
        "quality": "high",
        "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
        "formula": "nutrition_basis_grams = raw_grams × factor"
      }
    },
    "ING018": {
      "id": "ING018",
      "name": "Brócolis cru, aparado e pronto para cozinhar",
      "notes": null,
      "measurement_state": "raw_ready_to_cook",
      "nutrition_reference": {
        "state_name": "Brócolis cozido e drenado, sem óleo",
        "per_100g": {
          "kcal": 27.0,
          "protein_g": 2.71,
          "carbs_g": 4.44,
          "fat_g": 0.54
        },
        "source_id": "SRC-4CEF6F81D9",
        "note": "Macros das refeições permanecem ancorados no estado consumido/cozido da versão anterior; o peso principal agora é cru e é convertido pelo fator de rendimento."
      },
      "yield_to_nutrition_reference": {
        "default_factor": 1.0,
        "source_id": "SRC-YIELD-USDA-VEG",
        "quality": "high",
        "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
        "formula": "nutrition_basis_grams = raw_grams × factor"
      }
    },
    "ING019": {
      "id": "ING019",
      "name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
      "notes": null,
      "measurement_state": "raw_ready_to_cook",
      "nutrition_reference": {
        "state_name": "Couve-flor cozida e drenada, sem óleo",
        "per_100g": {
          "kcal": 17.0,
          "protein_g": 1.28,
          "carbs_g": 3.41,
          "fat_g": 0.2
        },
        "source_id": "SRC-4CEF6F81D9",
        "note": "Macros das refeições permanecem ancorados no estado consumido/cozido da versão anterior; o peso principal agora é cru e é convertido pelo fator de rendimento."
      },
      "yield_to_nutrition_reference": {
        "default_factor": 0.98,
        "source_id": "SRC-YIELD-USDA-VEG",
        "quality": "high",
        "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
        "formula": "nutrition_basis_grams = raw_grams × factor"
      }
    },
    "ING020": {
      "id": "ING020",
      "name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
      "notes": null,
      "measurement_state": "raw_ready_to_cook",
      "nutrition_reference": {
        "state_name": "Berinjela cozida e drenada, sem óleo",
        "per_100g": {
          "kcal": 26.0,
          "protein_g": 0.79,
          "carbs_g": 6.2,
          "fat_g": 0.24
        },
        "source_id": "SRC-4CEF6F81D9",
        "note": "Macros das refeições permanecem ancorados no estado consumido/cozido da versão anterior; o peso principal agora é cru e é convertido pelo fator de rendimento."
      },
      "yield_to_nutrition_reference": {
        "default_factor": 0.94,
        "source_id": "SRC-YIELD-USDA-AH102",
        "quality": "medium",
        "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
        "formula": "nutrition_basis_grams = raw_grams × factor"
      }
    },
    "ING022": {
      "id": "ING022",
      "name": "Vagem crua, aparada e cortada, pronta para cozinhar",
      "notes": null,
      "measurement_state": "raw_ready_to_cook",
      "nutrition_reference": {
        "state_name": "Vagem cozida e drenada, sem óleo",
        "per_100g": {
          "kcal": 23.0,
          "protein_g": 1.6,
          "carbs_g": 5.04,
          "fat_g": 0.15
        },
        "source_id": "SRC-4CEF6F81D9",
        "note": "Macros das refeições permanecem ancorados no estado consumido/cozido da versão anterior; o peso principal agora é cru e é convertido pelo fator de rendimento."
      },
      "yield_to_nutrition_reference": {
        "default_factor": 0.89,
        "source_id": "SRC-YIELD-USDA-VEG",
        "quality": "high",
        "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
        "formula": "nutrition_basis_grams = raw_grams × factor"
      }
    },
    "ING023": {
      "id": "ING023",
      "name": "Tomate cru",
      "notes": null,
      "measurement_state": "raw_ready_to_use",
      "nutrition_reference": {
        "state_name": "Tomate cru",
        "per_100g": {
          "kcal": 18.0,
          "protein_g": 1.04,
          "carbs_g": 3.82,
          "fat_g": 0.17
        },
        "source_id": "SRC-4CEF6F81D9",
        "note": "O estado de pesagem e o estado da referência nutricional coincidem para este item."
      },
      "yield_to_nutrition_reference": null
    },
    "ING024": {
      "id": "ING024",
      "name": "Cebola branca crua",
      "notes": null,
      "measurement_state": "raw_ready_to_use",
      "nutrition_reference": {
        "state_name": "Cebola branca crua",
        "per_100g": {
          "kcal": 41.0,
          "protein_g": 1.76,
          "carbs_g": 9.21,
          "fat_g": 0.13
        },
        "source_id": "SRC-4CEF6F81D9",
        "note": "O estado de pesagem e o estado da referência nutricional coincidem para este item."
      },
      "yield_to_nutrition_reference": null
    },
    "ING025": {
      "id": "ING025",
      "name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
      "notes": "Carboidrato disponível usado por consistência com a entrada consultada.",
      "measurement_state": "raw_ready_to_cook",
      "nutrition_reference": {
        "state_name": "Cogumelo Paris cozido, sem óleo",
        "per_100g": {
          "kcal": 38.0,
          "protein_g": 2.63,
          "carbs_g": 4.51,
          "fat_g": 0.43
        },
        "source_id": "SRC-4CEF6F81D9",
        "note": "Macros das refeições permanecem ancorados no estado consumido/cozido da versão anterior; o peso principal agora é cru e é convertido pelo fator de rendimento."
      },
      "yield_to_nutrition_reference": {
        "default_factor": 0.44,
        "source_id": "SRC-YIELD-USDA-VEG",
        "quality": "medium",
        "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
        "formula": "nutrition_basis_grams = raw_grams × factor"
      }
    },
    "ING026": {
      "id": "ING026",
      "name": "Abacate cru",
      "notes": null,
      "measurement_state": "raw_ready_to_use",
      "nutrition_reference": {
        "state_name": "Abacate cru",
        "per_100g": {
          "kcal": 76.0,
          "protein_g": 1.15,
          "carbs_g": 5.84,
          "fat_g": 6.21
        },
        "source_id": "SRC-4CEF6F81D9",
        "note": "O estado de pesagem e o estado da referência nutricional coincidem para este item."
      },
      "yield_to_nutrition_reference": null
    },
    "ING027": {
      "id": "ING027",
      "name": "Amêndoa natural crua, sem casca",
      "notes": null,
      "measurement_state": "raw_ready_to_cook",
      "nutrition_reference": {
        "state_name": "Amêndoa torrada",
        "per_100g": {
          "kcal": 581.0,
          "protein_g": 18.6,
          "carbs_g": 29.5,
          "fat_g": 47.3
        },
        "source_id": "SRC-996808AA1C",
        "note": "Macros das refeições permanecem ancorados no estado consumido/cozido da versão anterior; o peso principal agora é cru e é convertido pelo fator de rendimento."
      },
      "yield_to_nutrition_reference": {
        "default_factor": 0.97,
        "source_id": "SRC-YIELD-USDA-ALMOND",
        "quality": "low_estimate",
        "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
        "formula": "nutrition_basis_grams = raw_grams × factor"
      }
    },
    "ING028": {
      "id": "ING028",
      "name": "Azeite de oliva",
      "notes": null,
      "measurement_state": "as_purchased_ready_to_use",
      "nutrition_reference": {
        "state_name": "Azeite de oliva",
        "per_100g": {
          "kcal": 900.0,
          "protein_g": 0.0,
          "carbs_g": 0.0,
          "fat_g": 100.0
        },
        "source_id": "SRC-4CEF6F81D9",
        "note": "O estado de pesagem e o estado da referência nutricional coincidem para este item."
      },
      "yield_to_nutrition_reference": null
    },
    "ING029": {
      "id": "ING029",
      "name": "Molho pesto sem sal (azeite, parmesão, manjericão, noz, alho)",
      "notes": null,
      "measurement_state": "as_purchased_ready_to_use",
      "nutrition_reference": {
        "state_name": "Molho pesto sem sal (azeite, parmesão, manjericão, noz, alho)",
        "per_100g": {
          "kcal": 558.0,
          "protein_g": 10.7,
          "carbs_g": 5.47,
          "fat_g": 55.3
        },
        "source_id": "SRC-A295CA3A0F",
        "note": "O estado de pesagem e o estado da referência nutricional coincidem para este item."
      },
      "yield_to_nutrition_reference": null
    },
    "ING030": {
      "id": "ING030",
      "name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
      "notes": "Média aritmética das três folhas; proporção operacional de 1/3 de cada.",
      "measurement_state": "raw_ready_to_use",
      "nutrition_reference": {
        "state_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
        "per_100g": {
          "kcal": 13.7,
          "protein_g": 1.7,
          "carbs_g": 2.55,
          "fat_g": 0.14
        },
        "source_id": "SRC-57A1D234A8",
        "note": "O estado de pesagem e o estado da referência nutricional coincidem para este item."
      },
      "yield_to_nutrition_reference": null
    },
    "ING031": {
      "id": "ING031",
      "name": "Clara de ovo de galinha crua",
      "notes": "TBCA BRC0005J; peso considerado antes do preparo, adequado para omeletes, panquecas, waffles e assados.",
      "measurement_state": "raw_ready_to_use",
      "nutrition_reference": {
        "state_name": "Clara de ovo de galinha crua",
        "per_100g": {
          "kcal": 50.0,
          "protein_g": 10.4,
          "carbs_g": 1.41,
          "fat_g": 0.3
        },
        "source_id": "SRC-89E10BE714",
        "note": "O estado de pesagem e o estado da referência nutricional coincidem para este item."
      },
      "yield_to_nutrition_reference": null
    },
    "ING032": {
      "id": "ING032",
      "name": "Creatina monohidratada Vitafor",
      "notes": "Suplemento da dieta original; 6 g no almoço. Operacionalmente não contribui para kcal/proteína/carboidrato/gordura na contagem usada neste plano.",
      "measurement_state": "as_purchased_ready_to_use",
      "nutrition_reference": {
        "state_name": "Creatina monohidratada Vitafor",
        "per_100g": {
          "kcal": 0.0,
          "protein_g": 0.0,
          "carbs_g": 0.0,
          "fat_g": 0.0
        },
        "source_id": "SRC-D4E6A3162D",
        "note": "O estado de pesagem e o estado da referência nutricional coincidem para este item."
      },
      "yield_to_nutrition_reference": null
    }
  },
  "seasonings_and_sauces": {
    "T001": {
      "id": "T001",
      "name": "Molho de alcaparras e limão",
      "flavor_profile": "ácido, salino e cítrico",
      "best_uses": "peixe, frango, folhas",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-BB905BA93A"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T002": {
      "id": "T002",
      "name": "Greek-style dressing",
      "flavor_profile": "orégano, acidez e azeite",
      "best_uses": "saladas, frango, legumes",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-BEC833BD84"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T003": {
      "id": "T003",
      "name": "Caesar dressing",
      "flavor_profile": "umami, alho e acidez",
      "best_uses": "folhas, frango; usar versão sem lactose/porção pequena",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-598D920C5E"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T004": {
      "id": "T004",
      "name": "Honey-mustard dressing",
      "flavor_profile": "doce-ácido e mostarda",
      "best_uses": "frango, porco; mel em dose pequena",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-AF40B8B9A9"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T005": {
      "id": "T005",
      "name": "Green goddess dressing",
      "flavor_profile": "herbal, fresco e cremoso",
      "best_uses": "frango, saladas, legumes",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-1F461F7B31"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T006": {
      "id": "T006",
      "name": "Tahini dressing",
      "flavor_profile": "gergelim tostado e limão",
      "best_uses": "frango, vegetais; contabilizar tahini se usado",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-3F757B26B9"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T007": {
      "id": "T007",
      "name": "Saffron dressing",
      "flavor_profile": "floral, aromático e ácido",
      "best_uses": "peixe, frango, legumes",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-E896E0D89D"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T008": {
      "id": "T008",
      "name": "Pomegranate dressing",
      "flavor_profile": "frutado e ácido",
      "best_uses": "folhas e carnes; controlar componente doce",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-65E09C76F8"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T009": {
      "id": "T009",
      "name": "Easy salad dressing",
      "flavor_profile": "vinaigrette equilibrada",
      "best_uses": "folhas e legumes",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-8711449663"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T010": {
      "id": "T010",
      "name": "Pesto dressing",
      "flavor_profile": "herbal, alho, queijo/nozes",
      "best_uses": "frango, legumes; contabilizar gordura",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-E6D348BC0F"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T011": {
      "id": "T011",
      "name": "Creamy kefir dressing",
      "flavor_profile": "ácido e cremoso",
      "best_uses": "saladas e frango; usar kefir zero lactose se tolerado",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-52AB353C84"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T012": {
      "id": "T012",
      "name": "Miso dressing",
      "flavor_profile": "umami, salino, levemente doce",
      "best_uses": "peixe, frango, legumes",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-69116DB631"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T013": {
      "id": "T013",
      "name": "Chipotle & lime dressing",
      "flavor_profile": "defumado, picante, cítrico",
      "best_uses": "frango, carne, saladas",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-31F13B7FE6"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T014": {
      "id": "T014",
      "name": "French dressing",
      "flavor_profile": "mostarda, vinagre e azeite",
      "best_uses": "saladas e legumes",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-80AD3979A8"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T015": {
      "id": "T015",
      "name": "Zhoug-style dressing",
      "flavor_profile": "coentro/salsa, chilli e especiarias",
      "best_uses": "frango, peixe, legumes",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-7A24C0245C"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T016": {
      "id": "T016",
      "name": "Bloody Mary dressing",
      "flavor_profile": "tomate, acidez, picância",
      "best_uses": "carne, saladas",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-002DE5342E"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T017": {
      "id": "T017",
      "name": "Lemon & parmesan vinaigrette",
      "flavor_profile": "cítrico, salgado e umami",
      "best_uses": "brócolis, vagem, folhas; parmesão pequeno",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-F66A693CBF"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T018": {
      "id": "T018",
      "name": "Berry vinaigrette",
      "flavor_profile": "frutado e ácido",
      "best_uses": "folhas; fruta em pequena quantidade",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-C9235888B5"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T019": {
      "id": "T019",
      "name": "Charred lemon dressing",
      "flavor_profile": "cítrico com amargor tostado",
      "best_uses": "peixe, frango, legumes",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-DA38AE4C89"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T020": {
      "id": "T020",
      "name": "Green olive & herb dressing",
      "flavor_profile": "salino, herbal",
      "best_uses": "frango, peixe, saladas",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-B78F61FFB7"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T021": {
      "id": "T021",
      "name": "Lemon dressing",
      "flavor_profile": "cítrico limpo",
      "best_uses": "peixe, frango, folhas",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-F19C64EE87"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T022": {
      "id": "T022",
      "name": "Buttermilk dressing",
      "flavor_profile": "ácido, cremoso",
      "best_uses": "frango e saladas; usar base zero lactose",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-E07B5B9F15"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T023": {
      "id": "T023",
      "name": "Citrus dressing",
      "flavor_profile": "cítrico e aromático",
      "best_uses": "peixe, frango, folhas",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-4DD72881AE"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T024": {
      "id": "T024",
      "name": "Mint & elderflower dressing",
      "flavor_profile": "mentolado e floral",
      "best_uses": "saladas; uso opcional/menos cotidiano",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-EC44C57F6A"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T025": {
      "id": "T025",
      "name": "Watercress dressing",
      "flavor_profile": "herbal, levemente picante",
      "best_uses": "peixe e saladas",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-70BB7B5806"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T026": {
      "id": "T026",
      "name": "Anchovy dressing",
      "flavor_profile": "umami e salino",
      "best_uses": "carne, folhas, brócolis",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-E89ACA468C"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T027": {
      "id": "T027",
      "name": "Chipotle yogurt dressing",
      "flavor_profile": "defumado, picante, cremoso",
      "best_uses": "frango, carne; iogurte zero lactose",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-2D67B9DFAE"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T028": {
      "id": "T028",
      "name": "Yogurt dressing",
      "flavor_profile": "ácido e cremoso",
      "best_uses": "frango, saladas; iogurte zero lactose",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-C62E07B5AD"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T029": {
      "id": "T029",
      "name": "Sesame dressing",
      "flavor_profile": "gergelim tostado, umami",
      "best_uses": "vagem, frango, peixe",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-6F9226DA82"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T030": {
      "id": "T030",
      "name": "Watercress mayonnaise",
      "flavor_profile": "herbal e cremoso",
      "best_uses": "peixe/frango; usar pouca quantidade e contabilizar",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-778302BBCB"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T031": {
      "id": "T031",
      "name": "Classic vinaigrette",
      "flavor_profile": "ácido, azeite e mostarda",
      "best_uses": "folhas e legumes",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-1E5EE3F844"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T032": {
      "id": "T032",
      "name": "Chimichurri",
      "flavor_profile": "herbal, ácido, alho",
      "best_uses": "carne, frango, peixe",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-3C1D56DA69"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T033": {
      "id": "T033",
      "name": "Herby yogurt dressing",
      "flavor_profile": "ervas frescas e acidez",
      "best_uses": "frango, legumes; iogurte zero lactose",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-22556F65B2"
      ],
      "rating_note": "coleção Good Food; avaliação publicada quando disponível"
    },
    "T034": {
      "id": "T034",
      "name": "Tomato sauce",
      "flavor_profile": "tomate, alho e ervas",
      "best_uses": "carne, frango, legumes",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-07CF820CC3"
      ],
      "rating_note": "coleção Good Food"
    },
    "T035": {
      "id": "T035",
      "name": "Pesto clássico",
      "flavor_profile": "manjericão, alho, queijo/nozes",
      "best_uses": "frango, peixe, legumes",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-A589F971FA"
      ],
      "rating_note": "coleção Good Food"
    },
    "T036": {
      "id": "T036",
      "name": "Rich ragù",
      "flavor_profile": "tomate e carne, longo cozimento",
      "best_uses": "carne moída e vegetais",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-BCA308B52D"
      ],
      "rating_note": "coleção Good Food"
    },
    "T037": {
      "id": "T037",
      "name": "Alfredo",
      "flavor_profile": "cremoso, queijo e pimenta",
      "best_uses": "uso eventual; adaptar para zero lactose e pequena porção",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-8230D6214F"
      ],
      "rating_note": "coleção Good Food"
    },
    "T038": {
      "id": "T038",
      "name": "Cheese sauce",
      "flavor_profile": "queijo e cremosidade",
      "best_uses": "legumes; versão zero lactose e dose medida",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-F23699F41A"
      ],
      "rating_note": "coleção Good Food"
    },
    "T040": {
      "id": "T040",
      "name": "Roasted pepper sauce",
      "flavor_profile": "pimentão assado, doce e defumado",
      "best_uses": "frango, peixe, carne",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-B5D0279EE4"
      ],
      "rating_note": "coleção Good Food"
    },
    "T041": {
      "id": "T041",
      "name": "White wine sauce",
      "flavor_profile": "ácido/aromático e amanteigado",
      "best_uses": "frango, peixe; adaptar gordura/lácteos",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-BB36DB7471"
      ],
      "rating_note": "coleção Good Food"
    },
    "T042": {
      "id": "T042",
      "name": "Basil pesto",
      "flavor_profile": "manjericão, alho, azeite",
      "best_uses": "frango, peixe, legumes",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-BA7A210FDE"
      ],
      "rating_note": "coleção Good Food"
    },
    "T043": {
      "id": "T043",
      "name": "Béchamel",
      "flavor_profile": "cremoso, noz-moscada",
      "best_uses": "uso eventual; leite zero lactose e porção medida",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-703F211DF1"
      ],
      "rating_note": "coleção Good Food"
    },
    "T044": {
      "id": "T044",
      "name": "Healthy ragù",
      "flavor_profile": "tomate, legumes e carne",
      "best_uses": "carne e legumes",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-5D6663FD73"
      ],
      "rating_note": "coleção Good Food"
    },
    "T045": {
      "id": "T045",
      "name": "Squished tomato sauce",
      "flavor_profile": "tomate fresco e rústico",
      "best_uses": "frango, peixe, carne",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-03F720EB4A"
      ],
      "rating_note": "coleção Good Food"
    },
    "T046": {
      "id": "T046",
      "name": "Mushroom sauce",
      "flavor_profile": "terroso e cremoso",
      "best_uses": "carne, frango; base zero lactose",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-73F9A157BF"
      ],
      "rating_note": "coleção Good Food"
    },
    "T047": {
      "id": "T047",
      "name": "Kale pesto",
      "flavor_profile": "verde, herbal, alho/nozes",
      "best_uses": "frango e legumes",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-2B8EFB3CCC"
      ],
      "rating_note": "coleção Good Food"
    },
    "T048": {
      "id": "T048",
      "name": "Marinara",
      "flavor_profile": "tomate, alho e ervas",
      "best_uses": "peixe, carne, legumes",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-4EE3018C6C"
      ],
      "rating_note": "coleção Good Food"
    },
    "T049": {
      "id": "T049",
      "name": "Roasted red pepper sauce",
      "flavor_profile": "doce, tostado, levemente ácido",
      "best_uses": "frango, peixe",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-0214292851"
      ],
      "rating_note": "coleção Good Food"
    },
    "T050": {
      "id": "T050",
      "name": "Marsala sauce",
      "flavor_profile": "doce-aromático e umami",
      "best_uses": "carne; uso pequeno",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-D1A3FDBFBD"
      ],
      "rating_note": "coleção Good Food"
    },
    "T051": {
      "id": "T051",
      "name": "Wild garlic pesto",
      "flavor_profile": "alho verde e herbal",
      "best_uses": "frango, peixe, legumes",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-745976BD58"
      ],
      "rating_note": "coleção Good Food"
    },
    "T052": {
      "id": "T052",
      "name": "Fresh herb sauce",
      "flavor_profile": "herbal e ácido",
      "best_uses": "frango, peixe, carne",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-200BB48213"
      ],
      "rating_note": "coleção Good Food"
    },
    "T053": {
      "id": "T053",
      "name": "Rocket pesto",
      "flavor_profile": "rúcula, alho e azeite",
      "best_uses": "frango, carne, legumes",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-18A3609784"
      ],
      "rating_note": "coleção Good Food"
    },
    "T054": {
      "id": "T054",
      "name": "Avocado hummus",
      "flavor_profile": "cremoso, vegetal, limão",
      "best_uses": "frango, carne, legumes; contabilizar abacate/grão-de-bico",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-378B3E3365"
      ],
      "rating_note": "coleção Good Food"
    },
    "T055": {
      "id": "T055",
      "name": "Lemon & coriander hummus",
      "flavor_profile": "cítrico, coentro e tahini",
      "best_uses": "frango/legumes; porção pequena",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-F1EB28DBAF"
      ],
      "rating_note": "coleção Good Food"
    },
    "T056": {
      "id": "T056",
      "name": "Tzatziki",
      "flavor_profile": "iogurte, pepino, alho, hortelã",
      "best_uses": "frango, peixe; iogurte zero lactose",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-E1C3886561"
      ],
      "rating_note": "coleção Good Food"
    },
    "T057": {
      "id": "T057",
      "name": "Ultimate tomato salsa",
      "flavor_profile": "tomate, cebola, chilli, limão",
      "best_uses": "carne, frango, peixe",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-4C5E352285"
      ],
      "rating_note": "coleção Good Food"
    },
    "T058": {
      "id": "T058",
      "name": "Chickpea & red pepper dip",
      "flavor_profile": "terroso, doce de pimentão",
      "best_uses": "legumes/frango; carboidrato relevante",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-8739FE7108"
      ],
      "rating_note": "coleção Good Food"
    },
    "T059": {
      "id": "T059",
      "name": "Smoky Spanish tomato & garlic dip",
      "flavor_profile": "tomate, alho, defumado",
      "best_uses": "carne, frango, legumes",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-BD02CB717C"
      ],
      "rating_note": "coleção Good Food"
    },
    "T061": {
      "id": "T061",
      "name": "Spicy sweet potato hummus",
      "flavor_profile": "doce, especiado, tahini",
      "best_uses": "uso pequeno; carboidrato relevante",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-CBD62AC4DF"
      ],
      "rating_note": "coleção Good Food"
    },
    "T062": {
      "id": "T062",
      "name": "Burnt aubergine raita",
      "flavor_profile": "defumado, iogurte e especiarias",
      "best_uses": "carne, frango; iogurte zero lactose",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-B4E600A53B"
      ],
      "rating_note": "coleção Good Food"
    },
    "T063": {
      "id": "T063",
      "name": "Butternut harissa hummus",
      "flavor_profile": "abóbora, picância e tahini",
      "best_uses": "frango/legumes; contabilizar porção",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-F472C1B934"
      ],
      "rating_note": "coleção Good Food"
    },
    "T065": {
      "id": "T065",
      "name": "Peanut hummus",
      "flavor_profile": "amendoim, tahini, limão",
      "best_uses": "frango; gordura relevante",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-CF64E7C200"
      ],
      "rating_note": "coleção Good Food"
    },
    "T066": {
      "id": "T066",
      "name": "Pepper & walnut hummus",
      "flavor_profile": "pimentão, noz, tahini",
      "best_uses": "carne/frango; gordura relevante",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-C93F24B73D"
      ],
      "rating_note": "coleção Good Food"
    },
    "T067": {
      "id": "T067",
      "name": "Red pepper & tomato relish",
      "flavor_profile": "doce-ácido e vegetal",
      "best_uses": "carne, frango, peixe",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-AB0BD3A4F6"
      ],
      "rating_note": "coleção Good Food"
    },
    "T068": {
      "id": "T068",
      "name": "Tomato chilli harissa",
      "flavor_profile": "tomate e picância intensa",
      "best_uses": "frango, peixe, carne",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-F27BD25D8A"
      ],
      "rating_note": "coleção Good Food"
    },
    "T069": {
      "id": "T069",
      "name": "Smoky chipotle salsa",
      "flavor_profile": "defumado e picante",
      "best_uses": "carne, frango, peixe",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-E9DA34AF41"
      ],
      "rating_note": "coleção Good Food"
    },
    "T070": {
      "id": "T070",
      "name": "Pumpkin hummus",
      "flavor_profile": "abóbora, tahini, especiarias",
      "best_uses": "frango/legumes; contabilizar",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-928668A1AC"
      ],
      "rating_note": "coleção Good Food"
    },
    "T071": {
      "id": "T071",
      "name": "Tomatillo salsa",
      "flavor_profile": "ácido, verde, herbal",
      "best_uses": "frango, peixe, carne",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-18D1234114"
      ],
      "rating_note": "coleção Good Food"
    },
    "T072": {
      "id": "T072",
      "name": "Red onion Indian-spiced hummus",
      "flavor_profile": "especiado, cebola e tahini",
      "best_uses": "frango; porção pequena",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-CC753AAA09"
      ],
      "rating_note": "coleção Good Food"
    },
    "T073": {
      "id": "T073",
      "name": "Smashed bean dip",
      "flavor_profile": "terroso, cítrico",
      "best_uses": "legumes/carne; carboidrato relevante",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-BE8A4D6631"
      ],
      "rating_note": "coleção Good Food"
    },
    "T074": {
      "id": "T074",
      "name": "Guacamole salsa",
      "flavor_profile": "abacate, limão e chilli",
      "best_uses": "frango, peixe, carne",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-16734F2576"
      ],
      "rating_note": "coleção Good Food"
    },
    "T075": {
      "id": "T075",
      "name": "Pineapple salsa",
      "flavor_profile": "frutado, ácido e picante",
      "best_uses": "peixe/frango; porção pequena pelo açúcar",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-122AB869FA"
      ],
      "rating_note": "coleção Good Food"
    },
    "T076": {
      "id": "T076",
      "name": "Sweetcorn salsa",
      "flavor_profile": "doce, ácido e crocante",
      "best_uses": "frango; carboidrato relevante",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-9EF0CE3D2F"
      ],
      "rating_note": "coleção Good Food"
    },
    "T077": {
      "id": "T077",
      "name": "Crunchy corn & pepper salsa",
      "flavor_profile": "crocante, vegetal e cítrico",
      "best_uses": "carne/frango; carboidrato relevante",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-4BC7A7CD2C"
      ],
      "rating_note": "coleção Good Food"
    },
    "T078": {
      "id": "T078",
      "name": "Salsa verde",
      "flavor_profile": "ervas, alcaparras/ácido",
      "best_uses": "peixe, carne, frango",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-1466307781"
      ],
      "rating_note": "coleção Good Food"
    },
    "T079": {
      "id": "T079",
      "name": "Tomato & avocado salsa",
      "flavor_profile": "fresco, cremoso e cítrico",
      "best_uses": "frango, peixe",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-3BE1991214"
      ],
      "rating_note": "coleção Good Food"
    },
    "T080": {
      "id": "T080",
      "name": "Smoky corn & avocado salsa",
      "flavor_profile": "defumado, cremoso, doce",
      "best_uses": "frango/carne; controlar porção",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-4EB4703A44"
      ],
      "rating_note": "coleção Good Food"
    },
    "T081": {
      "id": "T081",
      "name": "Corn & black bean salsa",
      "flavor_profile": "terroso, cítrico, crocante",
      "best_uses": "frango; carboidrato relevante",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-8B03BE0E6B"
      ],
      "rating_note": "coleção Good Food"
    },
    "T082": {
      "id": "T082",
      "name": "Red pepper & tomato salsa",
      "flavor_profile": "doce vegetal e ácido",
      "best_uses": "peixe/frango",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-11B373E180"
      ],
      "rating_note": "coleção Good Food"
    },
    "T083": {
      "id": "T083",
      "name": "Mexican corn salsa",
      "flavor_profile": "milho, limão, chilli",
      "best_uses": "frango/carne; carboidrato relevante",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-BE5878846F"
      ],
      "rating_note": "coleção Good Food"
    },
    "T084": {
      "id": "T084",
      "name": "Smoky tomato & pepper salsa",
      "flavor_profile": "defumado, tomate, pimentão",
      "best_uses": "carne/frango/peixe",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-9E0303E95D"
      ],
      "rating_note": "coleção Good Food"
    },
    "T086": {
      "id": "T086",
      "name": "Charred sweetcorn salsa",
      "flavor_profile": "milho tostado, limão, chilli",
      "best_uses": "frango/carne; carboidrato relevante",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-615F519BF5"
      ],
      "rating_note": "coleção Good Food"
    },
    "T087": {
      "id": "T087",
      "name": "Pico de gallo",
      "flavor_profile": "tomate, cebola, jalapeño, coentro e limão",
      "best_uses": "carne, frango, peixe",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-50DD8DE246"
      ],
      "rating_note": "coleção Good Food"
    },
    "T088": {
      "id": "T088",
      "name": "Peppercorn sauce",
      "flavor_profile": "pimenta, cremoso e intenso",
      "best_uses": "carne; adaptar para zero lactose",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-4A1A6FBE32"
      ],
      "rating_note": "coleção Good Food"
    },
    "T089": {
      "id": "T089",
      "name": "Dill sauce",
      "flavor_profile": "endro, ácido e herbal",
      "best_uses": "peixe/frango",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-EAEDA0D97D"
      ],
      "rating_note": "coleção Good Food"
    },
    "T090": {
      "id": "T090",
      "name": "Red wine jus",
      "flavor_profile": "vinho reduzido, profundo e ácido",
      "best_uses": "carne; uso pequeno",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-AE4921DC07"
      ],
      "rating_note": "coleção Good Food"
    },
    "T091": {
      "id": "T091",
      "name": "Whisky sauce",
      "flavor_profile": "aromático, cremoso",
      "best_uses": "carne; uso eventual, base zero lactose",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-A187187D06"
      ],
      "rating_note": "coleção Good Food"
    },
    "T092": {
      "id": "T092",
      "name": "Blue cheese sauce",
      "flavor_profile": "forte, salgado e cremoso",
      "best_uses": "carne; usar queijo tolerado/zero lactose e pouco",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-AFD49200BB"
      ],
      "rating_note": "coleção Good Food"
    },
    "T093": {
      "id": "T093",
      "name": "Horseradish sauce",
      "flavor_profile": "picante nasal, ácido",
      "best_uses": "carne e peixe",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-E5B3620E2D"
      ],
      "rating_note": "coleção Good Food"
    },
    "T094": {
      "id": "T094",
      "name": "Creamy mushroom sauce",
      "flavor_profile": "terroso e cremoso",
      "best_uses": "carne/frango; base zero lactose",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-288C1B6A2F"
      ],
      "rating_note": "coleção Good Food"
    },
    "T095": {
      "id": "T095",
      "name": "Béarnaise",
      "flavor_profile": "estragão, acidez, manteiga",
      "best_uses": "carne; muito energética, porção pequena",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-C0DE9A2FD6"
      ],
      "rating_note": "coleção Good Food"
    },
    "T096": {
      "id": "T096",
      "name": "Shallot & red wine sauce",
      "flavor_profile": "cebola doce, vinho, acidez",
      "best_uses": "carne",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-074950F67D"
      ],
      "rating_note": "coleção Good Food"
    },
    "T097": {
      "id": "T097",
      "name": "Cacio e pepe butter",
      "flavor_profile": "pimenta e queijo",
      "best_uses": "legumes/carne; gordura relevante",
      "lactose_macro_note": "Sem lactose por natureza; confirmar ingredientes industrializados.",
      "source_ids": [
        "SRC-5E9C728B23"
      ],
      "rating_note": "coleção Good Food"
    },
    "T098": {
      "id": "T098",
      "name": "Cajun seasoning",
      "flavor_profile": "páprica, cayenne, cominho, alho, tomilho, orégano",
      "best_uses": "frango, peixe, carne",
      "lactose_macro_note": "Sem lactose.",
      "source_ids": [
        "SRC-4946CC88E7"
      ],
      "rating_note": "4.7/5 (19)"
    },
    "T099": {
      "id": "T099",
      "name": "Garam masala",
      "flavor_profile": "coentro, cominho, pimenta, canela, cardamomo, cravo",
      "best_uses": "frango, carne, peixe",
      "lactose_macro_note": "Sem lactose.",
      "source_ids": [
        "SRC-19CE09B4C3"
      ],
      "rating_note": "5.0/5 (4)"
    },
    "T100": {
      "id": "T100",
      "name": "Spiced meat rub",
      "flavor_profile": "chilli, tomilho, alecrim, louro, aipo, pimenta",
      "best_uses": "carne, frango",
      "lactose_macro_note": "Sem lactose.",
      "source_ids": [
        "SRC-D724022058"
      ],
      "rating_note": "Good Food"
    },
    "T101": {
      "id": "T101",
      "name": "Jerk seasoning/marinade",
      "flavor_profile": "tomilho, pimenta-da-jamaica, chilli, alho, gengibre",
      "best_uses": "frango, porco, peixe",
      "lactose_macro_note": "Sem lactose.",
      "source_ids": [
        "SRC-4C16A79506"
      ],
      "rating_note": "Good Food"
    },
    "T102": {
      "id": "T102",
      "name": "Za’atar",
      "flavor_profile": "gergelim, sumagre e ervas",
      "best_uses": "frango, peixe, legumes",
      "lactose_macro_note": "Sem lactose.",
      "source_ids": [
        "SRC-190D9CC93E"
      ],
      "rating_note": "4.6/5 em receita de referência"
    },
    "T103": {
      "id": "T103",
      "name": "Harissa",
      "flavor_profile": "chilli, especiarias, alho",
      "best_uses": "frango, peixe, carne, legumes",
      "lactose_macro_note": "Sem lactose; conferir pasta pronta.",
      "source_ids": [
        "SRC-1B9EE4F594"
      ],
      "rating_note": "coleção Good Food"
    },
    "T104": {
      "id": "T104",
      "name": "Green curry paste",
      "flavor_profile": "erva-cidreira/limão, chilli, coentro e especiarias",
      "best_uses": "frango, peixe, legumes",
      "lactose_macro_note": "Sem lactose; conferir pasta pronta.",
      "source_ids": [
        "SRC-DD1C8BA1DF"
      ],
      "rating_note": "4.6/5 (7)"
    },
    "T105": {
      "id": "T105",
      "name": "Homemade ketchup",
      "flavor_profile": "tomate, vinagre, especiarias, doce",
      "best_uses": "carne/frango; pequena dose",
      "lactose_macro_note": "Sem lactose; açúcar relevante.",
      "source_ids": [
        "SRC-519197AAC2"
      ],
      "rating_note": "4.3/5 (21)"
    },
    "T106": {
      "id": "T106",
      "name": "Brown sauce",
      "flavor_profile": "ácido, especiado, frutado",
      "best_uses": "carne; pequena dose",
      "lactose_macro_note": "Sem lactose; açúcar relevante.",
      "source_ids": [
        "SRC-A996D9396D"
      ],
      "rating_note": "4.0/5 (3)"
    },
    "T107": {
      "id": "T107",
      "name": "Mango chutney",
      "flavor_profile": "doce, ácido, especiado",
      "best_uses": "curry/frango; pequena dose",
      "lactose_macro_note": "Sem lactose; açúcar relevante.",
      "source_ids": [
        "SRC-E8CE4A5820"
      ],
      "rating_note": "4.3/5 (25)"
    },
    "T108": {
      "id": "T108",
      "name": "Guacamole",
      "flavor_profile": "abacate, limão, coentro, chilli",
      "best_uses": "frango, peixe, carne",
      "lactose_macro_note": "Sem lactose; gordura relevante.",
      "source_ids": [
        "SRC-F4AC8174AF"
      ],
      "rating_note": "4.8/5 (210)"
    },
    "T109": {
      "id": "T109",
      "name": "Hoisin sauce",
      "flavor_profile": "doce, salgado e umami",
      "best_uses": "frango/carne; pequena dose",
      "lactose_macro_note": "Sem lactose em geral; conferir rótulo; açúcar relevante.",
      "source_ids": [
        "SRC-20E7353166"
      ],
      "rating_note": "3.8/5 (30)"
    },
    "T110": {
      "id": "T110",
      "name": "Baunilha e canela",
      "flavor_profile": "doce, quente e aromático",
      "best_uses": "panquecas, waffles, creme de ovos",
      "lactose_macro_note": "Sem lactose por natureza nos aromáticos; adoçante sem calorias quando usado.",
      "source_ids": [
        "SRC-63E09E4CC0"
      ],
      "rating_note": "Fonte culinária conhecida; perfil adaptado sem açúcar adicionado."
    },
    "T111": {
      "id": "T111",
      "name": "Limão e baunilha",
      "flavor_profile": "cítrico, fresco e doce",
      "best_uses": "panquecas, custards, cremes",
      "lactose_macro_note": "Sem lactose por natureza nos aromáticos; adoçante sem calorias quando usado.",
      "source_ids": [
        "SRC-3E8E96B92A"
      ],
      "rating_note": "Fonte culinária conhecida; perfil adaptado sem açúcar adicionado."
    },
    "T112": {
      "id": "T112",
      "name": "Café e canela",
      "flavor_profile": "tostado, aromático e levemente amargo",
      "best_uses": "mug cake, cremes, panquecas",
      "lactose_macro_note": "Sem lactose por natureza nos aromáticos; adoçante sem calorias quando usado.",
      "source_ids": [
        "SRC-0D69818314"
      ],
      "rating_note": "Fonte culinária conhecida; perfil adaptado sem açúcar adicionado."
    },
    "T113": {
      "id": "T113",
      "name": "Morango e baunilha",
      "flavor_profile": "frutado, ácido e doce",
      "best_uses": "parfaits, frozen yogurt, panquecas",
      "lactose_macro_note": "Sem lactose por natureza nos aromáticos; adoçante sem calorias quando usado.",
      "source_ids": [
        "SRC-E6C55B7F2D"
      ],
      "rating_note": "Fonte culinária conhecida; perfil adaptado sem açúcar adicionado."
    },
    "T114": {
      "id": "T114",
      "name": "Noz-moscada e baunilha",
      "flavor_profile": "quente, custard clássico",
      "best_uses": "custards e preparos de ovos doces",
      "lactose_macro_note": "Sem lactose por natureza nos aromáticos; adoçante sem calorias quando usado.",
      "source_ids": [
        "SRC-3E8E96B92A"
      ],
      "rating_note": "Fonte culinária conhecida; perfil adaptado sem açúcar adicionado."
    },
    "T115": {
      "id": "T115",
      "name": "Canela estilo cinnamon-roll",
      "flavor_profile": "canela intensa e doce",
      "best_uses": "panquecas e waffles",
      "lactose_macro_note": "Sem lactose por natureza nos aromáticos; adoçante sem calorias quando usado.",
      "source_ids": [
        "SRC-A8DDED5CA2"
      ],
      "rating_note": "Fonte culinária conhecida; perfil adaptado sem açúcar adicionado."
    },
    "T116": {
      "id": "T116",
      "name": "Chocolate/cacau e baunilha",
      "flavor_profile": "chocolate amargo e doce",
      "best_uses": "mug cakes, brownies, cremes",
      "lactose_macro_note": "Sem lactose por natureza nos aromáticos; adoçante sem calorias quando usado.",
      "source_ids": [
        "SRC-4AEC2DDA8E"
      ],
      "rating_note": "Fonte culinária conhecida; perfil adaptado sem açúcar adicionado."
    },
    "T117": {
      "id": "T117",
      "name": "Pumpkin spice",
      "flavor_profile": "canela, gengibre e especiarias quentes",
      "best_uses": "panquecas e bolos",
      "lactose_macro_note": "Sem lactose por natureza nos aromáticos; adoçante sem calorias quando usado.",
      "source_ids": [
        "SRC-AD6F9E9285"
      ],
      "rating_note": "Fonte culinária conhecida; perfil adaptado sem açúcar adicionado."
    },
    "T118": {
      "id": "T118",
      "name": "Laranja e canela",
      "flavor_profile": "cítrico doce e quente",
      "best_uses": "custards, panquecas e cremes",
      "lactose_macro_note": "Sem lactose por natureza nos aromáticos; adoçante sem calorias quando usado.",
      "source_ids": [
        "SRC-BDEFB6DD8B"
      ],
      "rating_note": "Fonte culinária conhecida; perfil adaptado sem açúcar adicionado."
    },
    "T119": {
      "id": "T119",
      "name": "Cardamomo e baunilha",
      "flavor_profile": "floral, quente e doce",
      "best_uses": "cremes e panquecas",
      "lactose_macro_note": "Sem lactose por natureza nos aromáticos; adoçante sem calorias quando usado.",
      "source_ids": [
        "SRC-BDEFB6DD8B"
      ],
      "rating_note": "Fonte culinária conhecida; perfil adaptado sem açúcar adicionado."
    },
    "T120": {
      "id": "T120",
      "name": "Gengibre e canela",
      "flavor_profile": "picante, quente e doce",
      "best_uses": "bolos e panquecas",
      "lactose_macro_note": "Sem lactose por natureza nos aromáticos; adoçante sem calorias quando usado.",
      "source_ids": [
        "SRC-0D69818314"
      ],
      "rating_note": "Fonte culinária conhecida; perfil adaptado sem açúcar adicionado."
    },
    "T121": {
      "id": "T121",
      "name": "Limão e canela",
      "flavor_profile": "cítrico e quente",
      "best_uses": "crepes e panquecas",
      "lactose_macro_note": "Sem lactose por natureza nos aromáticos; adoçante sem calorias quando usado.",
      "source_ids": [
        "SRC-2254C533D0"
      ],
      "rating_note": "Fonte culinária conhecida; perfil adaptado sem açúcar adicionado."
    }
  },
  "sources": {
    "SRC-5DAF94EBE0": {
      "id": "SRC-5DAF94EBE0",
      "title": "TBCA - Tabela Brasileira de Composição de Alimentos",
      "url": "https://www.tbca.net.br/base-dados/int_composicao_alimentos.php?cod_produto=BRC0011J",
      "site": "TBCA",
      "kind": "nutrition",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-88AF49BBAF": {
      "id": "SRC-88AF49BBAF",
      "title": "TBCA - Tabela Brasileira de Composição de Alimentos",
      "url": "https://www.tbca.net.br/base-dados/int_composicao_alimentos.php?cod_produto=BRC0010J",
      "site": "TBCA",
      "kind": "nutrition",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-94152E8BF0": {
      "id": "SRC-94152E8BF0",
      "title": "TBCA - Tabela Brasileira de Composição de Alimentos",
      "url": "https://www.tbca.net.br/base-dados-en/int_food_composition_2_edit.php?cod_produto=BRC0015J",
      "site": "TBCA",
      "kind": "nutrition",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-996808AA1C": {
      "id": "SRC-996808AA1C",
      "title": "TACO 4ª ed. - NEPA/UNICAMP",
      "url": "https://nepa.unicamp.br/wp-content/uploads/sites/27/2023/10/taco_4_edicao_ampliada_e_revisada.pdf",
      "site": null,
      "kind": "nutrition",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-33060FD30F": {
      "id": "SRC-33060FD30F",
      "title": "TBCA - Tabela Brasileira de Composição de Alimentos",
      "url": "https://www.tbca.net.br/base-dados/int_composicao_alimentos.php?cod_produto=BRC0060G",
      "site": "TBCA",
      "kind": "nutrition",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-C49CD862DD": {
      "id": "SRC-C49CD862DD",
      "title": "TBCA - Tabela Brasileira de Composição de Alimentos",
      "url": "https://www.tbca.net.br/base-dados/int_composicao_alimentos.php?cod_produto=BRC0194F",
      "site": "TBCA",
      "kind": "nutrition",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-4CEF6F81D9": {
      "id": "SRC-4CEF6F81D9",
      "title": "TBCA - Tabela Brasileira de Composição de Alimentos",
      "url": "https://www.tbca.net.br/base-dados/int_composicao_alimentos.php",
      "site": "TBCA",
      "kind": "nutrition",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-721CE1AA4E": {
      "id": "SRC-721CE1AA4E",
      "title": "Rótulo do produto / páginas de produto consultadas",
      "url": "https://www.gsuplementos.com.br/",
      "site": null,
      "kind": "nutrition",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-A295CA3A0F": {
      "id": "SRC-A295CA3A0F",
      "title": "TBCA - Tabela Brasileira de Composição de Alimentos",
      "url": "https://www.tbca.net.br/base-dados/int_composicao_alimentos.php?cod_produto=BRC0058L",
      "site": "TBCA",
      "kind": "nutrition",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-57A1D234A8": {
      "id": "SRC-57A1D234A8",
      "title": "TBCA - Tabela Brasileira de Composição de Alimentos",
      "url": "https://www.tbca.net.br/",
      "site": "TBCA",
      "kind": "nutrition",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-89E10BE714": {
      "id": "SRC-89E10BE714",
      "title": "TBCA — Ovo, galinha, clara, crua, Brasil",
      "url": "https://www.tbca.net.br/base-dados/int_composicao_alimentos.php?n0REd3kv7e86D%2BViXWYUnQ%3D%3D=IBWeNVAr6szSwtXAQN2HAQ%3D%3D",
      "site": "TBCA",
      "kind": "nutrition",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-D4E6A3162D": {
      "id": "SRC-D4E6A3162D",
      "title": "Vitafor — CREATINE: Creatina Monohidratada 300g",
      "url": "https://www.vitafor.com.br/creatine---300g---vitafor/p",
      "site": "Vitafor",
      "kind": "product",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-BB905BA93A": {
      "id": "SRC-BB905BA93A",
      "title": "Molho de alcaparras e limão",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-BEC833BD84": {
      "id": "SRC-BEC833BD84",
      "title": "Greek-style dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-598D920C5E": {
      "id": "SRC-598D920C5E",
      "title": "Caesar dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-AF40B8B9A9": {
      "id": "SRC-AF40B8B9A9",
      "title": "Honey-mustard dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-1F461F7B31": {
      "id": "SRC-1F461F7B31",
      "title": "Green goddess dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-3F757B26B9": {
      "id": "SRC-3F757B26B9",
      "title": "Tahini dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-E896E0D89D": {
      "id": "SRC-E896E0D89D",
      "title": "Saffron dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-65E09C76F8": {
      "id": "SRC-65E09C76F8",
      "title": "Pomegranate dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-8711449663": {
      "id": "SRC-8711449663",
      "title": "Easy salad dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-E6D348BC0F": {
      "id": "SRC-E6D348BC0F",
      "title": "Pesto dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-52AB353C84": {
      "id": "SRC-52AB353C84",
      "title": "Creamy kefir dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-69116DB631": {
      "id": "SRC-69116DB631",
      "title": "Miso dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-31F13B7FE6": {
      "id": "SRC-31F13B7FE6",
      "title": "Chipotle & lime dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-80AD3979A8": {
      "id": "SRC-80AD3979A8",
      "title": "French dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-7A24C0245C": {
      "id": "SRC-7A24C0245C",
      "title": "Zhoug-style dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-002DE5342E": {
      "id": "SRC-002DE5342E",
      "title": "Bloody Mary dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-F66A693CBF": {
      "id": "SRC-F66A693CBF",
      "title": "Lemon & parmesan vinaigrette",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-C9235888B5": {
      "id": "SRC-C9235888B5",
      "title": "Berry vinaigrette",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-DA38AE4C89": {
      "id": "SRC-DA38AE4C89",
      "title": "Charred lemon dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-B78F61FFB7": {
      "id": "SRC-B78F61FFB7",
      "title": "Green olive & herb dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-F19C64EE87": {
      "id": "SRC-F19C64EE87",
      "title": "Lemon dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-E07B5B9F15": {
      "id": "SRC-E07B5B9F15",
      "title": "Buttermilk dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-4DD72881AE": {
      "id": "SRC-4DD72881AE",
      "title": "Citrus dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-EC44C57F6A": {
      "id": "SRC-EC44C57F6A",
      "title": "Mint & elderflower dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-70BB7B5806": {
      "id": "SRC-70BB7B5806",
      "title": "Watercress dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-E89ACA468C": {
      "id": "SRC-E89ACA468C",
      "title": "Anchovy dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-2D67B9DFAE": {
      "id": "SRC-2D67B9DFAE",
      "title": "Chipotle yogurt dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-C62E07B5AD": {
      "id": "SRC-C62E07B5AD",
      "title": "Yogurt dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-6F9226DA82": {
      "id": "SRC-6F9226DA82",
      "title": "Sesame dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-778302BBCB": {
      "id": "SRC-778302BBCB",
      "title": "Watercress mayonnaise",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-1E5EE3F844": {
      "id": "SRC-1E5EE3F844",
      "title": "Classic vinaigrette",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-3C1D56DA69": {
      "id": "SRC-3C1D56DA69",
      "title": "Chimichurri",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-22556F65B2": {
      "id": "SRC-22556F65B2",
      "title": "Herby yogurt dressing",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-07CF820CC3": {
      "id": "SRC-07CF820CC3",
      "title": "Tomato sauce",
      "url": "https://www.bbcgoodfood.com/recipes/collection/pasta-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-A589F971FA": {
      "id": "SRC-A589F971FA",
      "title": "Pesto clássico",
      "url": "https://www.bbcgoodfood.com/recipes/collection/pasta-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-BCA308B52D": {
      "id": "SRC-BCA308B52D",
      "title": "Rich ragù",
      "url": "https://www.bbcgoodfood.com/recipes/collection/pasta-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-8230D6214F": {
      "id": "SRC-8230D6214F",
      "title": "Alfredo",
      "url": "https://www.bbcgoodfood.com/recipes/collection/pasta-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-F23699F41A": {
      "id": "SRC-F23699F41A",
      "title": "Cheese sauce",
      "url": "https://www.bbcgoodfood.com/recipes/collection/pasta-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-B5D0279EE4": {
      "id": "SRC-B5D0279EE4",
      "title": "Roasted pepper sauce",
      "url": "https://www.bbcgoodfood.com/recipes/collection/pasta-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-BB36DB7471": {
      "id": "SRC-BB36DB7471",
      "title": "White wine sauce",
      "url": "https://www.bbcgoodfood.com/recipes/collection/pasta-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-BA7A210FDE": {
      "id": "SRC-BA7A210FDE",
      "title": "Basil pesto",
      "url": "https://www.bbcgoodfood.com/recipes/collection/pasta-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-703F211DF1": {
      "id": "SRC-703F211DF1",
      "title": "Béchamel",
      "url": "https://www.bbcgoodfood.com/recipes/collection/pasta-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-5D6663FD73": {
      "id": "SRC-5D6663FD73",
      "title": "Healthy ragù",
      "url": "https://www.bbcgoodfood.com/recipes/collection/pasta-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-03F720EB4A": {
      "id": "SRC-03F720EB4A",
      "title": "Squished tomato sauce",
      "url": "https://www.bbcgoodfood.com/recipes/collection/pasta-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-73F9A157BF": {
      "id": "SRC-73F9A157BF",
      "title": "Mushroom sauce",
      "url": "https://www.bbcgoodfood.com/recipes/collection/pasta-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-2B8EFB3CCC": {
      "id": "SRC-2B8EFB3CCC",
      "title": "Kale pesto",
      "url": "https://www.bbcgoodfood.com/recipes/collection/pasta-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-4EE3018C6C": {
      "id": "SRC-4EE3018C6C",
      "title": "Marinara",
      "url": "https://www.bbcgoodfood.com/recipes/collection/pasta-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-0214292851": {
      "id": "SRC-0214292851",
      "title": "Roasted red pepper sauce",
      "url": "https://www.bbcgoodfood.com/recipes/collection/pasta-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-D1A3FDBFBD": {
      "id": "SRC-D1A3FDBFBD",
      "title": "Marsala sauce",
      "url": "https://www.bbcgoodfood.com/recipes/collection/pasta-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-745976BD58": {
      "id": "SRC-745976BD58",
      "title": "Wild garlic pesto",
      "url": "https://www.bbcgoodfood.com/recipes/collection/pasta-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-200BB48213": {
      "id": "SRC-200BB48213",
      "title": "Fresh herb sauce",
      "url": "https://www.bbcgoodfood.com/recipes/collection/pasta-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-18A3609784": {
      "id": "SRC-18A3609784",
      "title": "Rocket pesto",
      "url": "https://www.bbcgoodfood.com/recipes/collection/pasta-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-378B3E3365": {
      "id": "SRC-378B3E3365",
      "title": "Avocado hummus",
      "url": "https://www.bbcgoodfood.com/recipes/collection/healthy-dip-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-F1EB28DBAF": {
      "id": "SRC-F1EB28DBAF",
      "title": "Lemon & coriander hummus",
      "url": "https://www.bbcgoodfood.com/recipes/collection/healthy-dip-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-E1C3886561": {
      "id": "SRC-E1C3886561",
      "title": "Tzatziki",
      "url": "https://www.bbcgoodfood.com/recipes/collection/healthy-dip-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-4C5E352285": {
      "id": "SRC-4C5E352285",
      "title": "Ultimate tomato salsa",
      "url": "https://www.bbcgoodfood.com/recipes/collection/healthy-dip-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-8739FE7108": {
      "id": "SRC-8739FE7108",
      "title": "Chickpea & red pepper dip",
      "url": "https://www.bbcgoodfood.com/recipes/collection/healthy-dip-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-BD02CB717C": {
      "id": "SRC-BD02CB717C",
      "title": "Smoky Spanish tomato & garlic dip",
      "url": "https://www.bbcgoodfood.com/recipes/collection/healthy-dip-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-CBD62AC4DF": {
      "id": "SRC-CBD62AC4DF",
      "title": "Spicy sweet potato hummus",
      "url": "https://www.bbcgoodfood.com/recipes/collection/healthy-dip-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-B4E600A53B": {
      "id": "SRC-B4E600A53B",
      "title": "Burnt aubergine raita",
      "url": "https://www.bbcgoodfood.com/recipes/collection/healthy-dip-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-F472C1B934": {
      "id": "SRC-F472C1B934",
      "title": "Butternut harissa hummus",
      "url": "https://www.bbcgoodfood.com/recipes/collection/healthy-dip-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-CF64E7C200": {
      "id": "SRC-CF64E7C200",
      "title": "Peanut hummus",
      "url": "https://www.bbcgoodfood.com/recipes/collection/healthy-dip-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-C93F24B73D": {
      "id": "SRC-C93F24B73D",
      "title": "Pepper & walnut hummus",
      "url": "https://www.bbcgoodfood.com/recipes/collection/healthy-dip-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-AB0BD3A4F6": {
      "id": "SRC-AB0BD3A4F6",
      "title": "Red pepper & tomato relish",
      "url": "https://www.bbcgoodfood.com/recipes/collection/healthy-dip-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-F27BD25D8A": {
      "id": "SRC-F27BD25D8A",
      "title": "Tomato chilli harissa",
      "url": "https://www.bbcgoodfood.com/recipes/collection/healthy-dip-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-E9DA34AF41": {
      "id": "SRC-E9DA34AF41",
      "title": "Smoky chipotle salsa",
      "url": "https://www.bbcgoodfood.com/recipes/collection/healthy-dip-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-928668A1AC": {
      "id": "SRC-928668A1AC",
      "title": "Pumpkin hummus",
      "url": "https://www.bbcgoodfood.com/recipes/collection/healthy-dip-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-18D1234114": {
      "id": "SRC-18D1234114",
      "title": "Tomatillo salsa",
      "url": "https://www.bbcgoodfood.com/recipes/collection/healthy-dip-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-CC753AAA09": {
      "id": "SRC-CC753AAA09",
      "title": "Red onion Indian-spiced hummus",
      "url": "https://www.bbcgoodfood.com/recipes/collection/healthy-dip-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-BE8A4D6631": {
      "id": "SRC-BE8A4D6631",
      "title": "Smashed bean dip",
      "url": "https://www.bbcgoodfood.com/recipes/collection/healthy-dip-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-16734F2576": {
      "id": "SRC-16734F2576",
      "title": "Guacamole salsa",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salsa-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-122AB869FA": {
      "id": "SRC-122AB869FA",
      "title": "Pineapple salsa",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salsa-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-9EF0CE3D2F": {
      "id": "SRC-9EF0CE3D2F",
      "title": "Sweetcorn salsa",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salsa-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-4BC7A7CD2C": {
      "id": "SRC-4BC7A7CD2C",
      "title": "Crunchy corn & pepper salsa",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salsa-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-1466307781": {
      "id": "SRC-1466307781",
      "title": "Salsa verde",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salsa-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-3BE1991214": {
      "id": "SRC-3BE1991214",
      "title": "Tomato & avocado salsa",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salsa-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-4EB4703A44": {
      "id": "SRC-4EB4703A44",
      "title": "Smoky corn & avocado salsa",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salsa-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-8B03BE0E6B": {
      "id": "SRC-8B03BE0E6B",
      "title": "Corn & black bean salsa",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salsa-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-11B373E180": {
      "id": "SRC-11B373E180",
      "title": "Red pepper & tomato salsa",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salsa-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-BE5878846F": {
      "id": "SRC-BE5878846F",
      "title": "Mexican corn salsa",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salsa-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-9E0303E95D": {
      "id": "SRC-9E0303E95D",
      "title": "Smoky tomato & pepper salsa",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salsa-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-615F519BF5": {
      "id": "SRC-615F519BF5",
      "title": "Charred sweetcorn salsa",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salsa-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-50DD8DE246": {
      "id": "SRC-50DD8DE246",
      "title": "Pico de gallo",
      "url": "https://www.bbcgoodfood.com/recipes/collection/salsa-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-4A1A6FBE32": {
      "id": "SRC-4A1A6FBE32",
      "title": "Peppercorn sauce",
      "url": "https://www.bbcgoodfood.com/recipes/collection/steak-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-EAEDA0D97D": {
      "id": "SRC-EAEDA0D97D",
      "title": "Dill sauce",
      "url": "https://www.bbcgoodfood.com/recipes/collection/steak-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-AE4921DC07": {
      "id": "SRC-AE4921DC07",
      "title": "Red wine jus",
      "url": "https://www.bbcgoodfood.com/recipes/collection/steak-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-A187187D06": {
      "id": "SRC-A187187D06",
      "title": "Whisky sauce",
      "url": "https://www.bbcgoodfood.com/recipes/collection/steak-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-AFD49200BB": {
      "id": "SRC-AFD49200BB",
      "title": "Blue cheese sauce",
      "url": "https://www.bbcgoodfood.com/recipes/collection/steak-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-E5B3620E2D": {
      "id": "SRC-E5B3620E2D",
      "title": "Horseradish sauce",
      "url": "https://www.bbcgoodfood.com/recipes/collection/steak-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-288C1B6A2F": {
      "id": "SRC-288C1B6A2F",
      "title": "Creamy mushroom sauce",
      "url": "https://www.bbcgoodfood.com/recipes/collection/steak-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-C0DE9A2FD6": {
      "id": "SRC-C0DE9A2FD6",
      "title": "Béarnaise",
      "url": "https://www.bbcgoodfood.com/recipes/collection/steak-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-074950F67D": {
      "id": "SRC-074950F67D",
      "title": "Shallot & red wine sauce",
      "url": "https://www.bbcgoodfood.com/recipes/collection/steak-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-5E9C728B23": {
      "id": "SRC-5E9C728B23",
      "title": "Cacio e pepe butter",
      "url": "https://www.bbcgoodfood.com/recipes/collection/steak-sauce-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-4946CC88E7": {
      "id": "SRC-4946CC88E7",
      "title": "Cajun seasoning",
      "url": "https://www.bbcgoodfood.com/recipes/cajun-seasoning",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-19CE09B4C3": {
      "id": "SRC-19CE09B4C3",
      "title": "Garam masala",
      "url": "https://www.bbcgoodfood.com/recipes/garam-masala-spice-mix",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-D724022058": {
      "id": "SRC-D724022058",
      "title": "Spiced meat rub",
      "url": "https://www.bbcgoodfood.com/recipes/spiced-meat-rub",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-4C16A79506": {
      "id": "SRC-4C16A79506",
      "title": "Jerk seasoning/marinade",
      "url": "https://www.bbcgoodfood.com/recipes/jamaican-jerk-chicken",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-190D9CC93E": {
      "id": "SRC-190D9CC93E",
      "title": "Za’atar",
      "url": "https://www.bbcgoodfood.com/recipes/collection/middle-eastern-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-1B9EE4F594": {
      "id": "SRC-1B9EE4F594",
      "title": "Harissa",
      "url": "https://www.bbcgoodfood.com/recipes/collection/harissa-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-DD1C8BA1DF": {
      "id": "SRC-DD1C8BA1DF",
      "title": "Green curry paste",
      "url": "https://www.bbcgoodfood.com/recipes/collection/basic-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-519197AAC2": {
      "id": "SRC-519197AAC2",
      "title": "Homemade ketchup",
      "url": "https://www.bbcgoodfood.com/recipes/collection/basic-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-A996D9396D": {
      "id": "SRC-A996D9396D",
      "title": "Brown sauce",
      "url": "https://www.bbcgoodfood.com/recipes/collection/basic-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-E8CE4A5820": {
      "id": "SRC-E8CE4A5820",
      "title": "Mango chutney",
      "url": "https://www.bbcgoodfood.com/recipes/collection/basic-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-F4AC8174AF": {
      "id": "SRC-F4AC8174AF",
      "title": "Guacamole",
      "url": "https://www.bbcgoodfood.com/recipes/collection/basic-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-20E7353166": {
      "id": "SRC-20E7353166",
      "title": "Hoisin sauce",
      "url": "https://www.bbcgoodfood.com/recipes/collection/basic-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-63E09E4CC0": {
      "id": "SRC-63E09E4CC0",
      "title": "Keto pancakes",
      "url": "https://www.bbcgoodfood.com/recipes/keto-pancakes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": 4.0,
      "rating_count": 19,
      "notes": null
    },
    "SRC-3E8E96B92A": {
      "id": "SRC-3E8E96B92A",
      "title": "Egg custard",
      "url": "https://www.bbcgoodfood.com/recipes/egg-custard",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": 4.7,
      "rating_count": 32,
      "notes": null
    },
    "SRC-0D69818314": {
      "id": "SRC-0D69818314",
      "title": "Keto dessert recipes",
      "url": "https://www.bbcgoodfood.com/recipes/keto-dessert-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-E6C55B7F2D": {
      "id": "SRC-E6C55B7F2D",
      "title": "Frozen yogurt",
      "url": "https://www.bbcgoodfood.com/recipes/frozen-yogurt",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": 3.2,
      "rating_count": 5,
      "notes": null
    },
    "SRC-A8DDED5CA2": {
      "id": "SRC-A8DDED5CA2",
      "title": "Cinnamon roll pancakes",
      "url": "https://www.bbcgoodfood.com/recipes/cinnamon-roll-pancakes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": 4.6,
      "rating_count": 17,
      "notes": null
    },
    "SRC-4AEC2DDA8E": {
      "id": "SRC-4AEC2DDA8E",
      "title": "Keto brownies / keto chocolate cake",
      "url": "https://www.bbcgoodfood.com/recipes/keto-dessert-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": 4.2,
      "rating_count": 5,
      "notes": null
    },
    "SRC-AD6F9E9285": {
      "id": "SRC-AD6F9E9285",
      "title": "Healthy pumpkin pancakes",
      "url": "https://www.bbcgoodfood.com/recipes/healthy-pumpkin-pancakes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": 4.0,
      "rating_count": 7,
      "notes": null
    },
    "SRC-BDEFB6DD8B": {
      "id": "SRC-BDEFB6DD8B",
      "title": "Egg custard recipes",
      "url": "https://www.bbcgoodfood.com/recipes/collection/egg-custard-recipes/",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-2254C533D0": {
      "id": "SRC-2254C533D0",
      "title": "Breakfast pancake recipes",
      "url": "https://www.bbcgoodfood.com/recipes/collection/breakfast-pancake-recipes",
      "site": "Good Food",
      "kind": "seasoning",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-4E6E7E712F": {
      "id": "SRC-4E6E7E712F",
      "title": "Basic omelette — 4.7/5 (117 avaliações)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/omelette-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.7,
      "rating_count": 117,
      "notes": null
    },
    "SRC-EC9CFA9DDA": {
      "id": "SRC-EC9CFA9DDA",
      "title": "Frango churrasco (grilled lemon & garlic chicken) — 4.9/5 (18)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/lemon-chicken-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.9,
      "rating_count": 18,
      "notes": null
    },
    "SRC-ECA8E1F8D9": {
      "id": "SRC-ECA8E1F8D9",
      "title": "Griddled lemon & thyme chicken — 4.0/5 (9)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/lemon-chicken-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.0,
      "rating_count": 9,
      "notes": null
    },
    "SRC-BA7CAF57D8": {
      "id": "SRC-BA7CAF57D8",
      "title": "Jerk chicken — 4.3/5 (36)",
      "url": "https://www.bbcgoodfood.com/recipes/jerk-chicken/",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.3,
      "rating_count": 36,
      "notes": null
    },
    "SRC-2F02D19B19": {
      "id": "SRC-2F02D19B19",
      "title": "Lemon yogurt chicken — 4.5/5 (34)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/lemon-chicken-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.5,
      "rating_count": 34,
      "notes": null
    },
    "SRC-09216EB51F": {
      "id": "SRC-09216EB51F",
      "title": "Greek salad omelette — 4.8/5 (63)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/omelette-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.8,
      "rating_count": 63,
      "notes": null
    },
    "SRC-E54E273CF8": {
      "id": "SRC-E54E273CF8",
      "title": "Lemon & oregano chicken traybake — 4.7/5 (141)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/lemon-chicken-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.7,
      "rating_count": 141,
      "notes": null
    },
    "SRC-48B8FB322E": {
      "id": "SRC-48B8FB322E",
      "title": "Chicken souvlaki — 4.8/5 (230)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/barbecue-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.8,
      "rating_count": 230,
      "notes": null
    },
    "SRC-1A3490590C": {
      "id": "SRC-1A3490590C",
      "title": "Chicken paillard with lemon & herbs — 4.8/5 (43)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/lemon-chicken-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.8,
      "rating_count": 43,
      "notes": null
    },
    "SRC-AA1FF0AF1B": {
      "id": "SRC-AA1FF0AF1B",
      "title": "Mushroom & basil omelette with smashed tomato",
      "url": "https://www.bbcgoodfood.com/recipes/mushroom-basil-omelette-smashed-tomato",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.4,
      "rating_count": 24,
      "notes": null
    },
    "SRC-E18543333B": {
      "id": "SRC-E18543333B",
      "title": "Chicken gyros — 4.6/5 (100)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/barbecue-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.6,
      "rating_count": 100,
      "notes": null
    },
    "SRC-A280B37386": {
      "id": "SRC-A280B37386",
      "title": "Herb omelette with fried tomatoes",
      "url": "https://www.bbcgoodfood.com/recipes/herb-omelette-fried-tomatoes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.3,
      "rating_count": 40,
      "notes": null
    },
    "SRC-D6E6893D01": {
      "id": "SRC-D6E6893D01",
      "title": "Rosemary & lemon roast chicken — 4.9/5 (31)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/lemon-chicken-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.9,
      "rating_count": 31,
      "notes": null
    },
    "SRC-306EB737D8": {
      "id": "SRC-306EB737D8",
      "title": "Omelette pancakes with tomato & pepper sauce",
      "url": "https://www.bbcgoodfood.com/recipes/omelette-pancakes-tomato-pepper-sauce",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.7,
      "rating_count": 14,
      "notes": null
    },
    "SRC-A3FD77E7A4": {
      "id": "SRC-A3FD77E7A4",
      "title": "Masala frittata with avocado salsa — 4.7/5 (70)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/fritatta-recipes/",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.7,
      "rating_count": 70,
      "notes": null
    },
    "SRC-BF10506C58": {
      "id": "SRC-BF10506C58",
      "title": "Chicken tikka skewers — 4.8/5 (84)",
      "url": "https://www.bbcgoodfood.com/recipes/chicken-tikka-skewers",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.8,
      "rating_count": 84,
      "notes": null
    },
    "SRC-025FA125E0": {
      "id": "SRC-025FA125E0",
      "title": "Lemon & five-spice chicken — 4.4/5 (13)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/lemon-chicken-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.4,
      "rating_count": 13,
      "notes": null
    },
    "SRC-5F81012DF2": {
      "id": "SRC-5F81012DF2",
      "title": "Easy chicken curry — 4.5/5 (360)",
      "url": "https://www.bbcgoodfood.com/recipes/easy-chicken-curry",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.5,
      "rating_count": 360,
      "notes": null
    },
    "SRC-4B593C7FA1": {
      "id": "SRC-4B593C7FA1",
      "title": "Ricotta, tomato & spinach frittata — 4.3/5 (157)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/fritatta-recipes/",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.3,
      "rating_count": 157,
      "notes": null
    },
    "SRC-DB8D4382D5": {
      "id": "SRC-DB8D4382D5",
      "title": "Easy cheesy frittata",
      "url": "https://www.bbcgoodfood.com/recipes/easy-cheesy-frittata",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.5,
      "rating_count": 21,
      "notes": null
    },
    "SRC-F0896CC580": {
      "id": "SRC-F0896CC580",
      "title": "Quiche Lorraine frittata — 4.8/5 (42)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/fritatta-recipes/",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.8,
      "rating_count": 42,
      "notes": null
    },
    "SRC-2583A03398": {
      "id": "SRC-2583A03398",
      "title": "Pumpkin, halloumi & chilli omelette — 4.7/5 (31)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/omelette-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.7,
      "rating_count": 31,
      "notes": null
    },
    "SRC-39E3863860": {
      "id": "SRC-39E3863860",
      "title": "Feta & semi-dried tomato omelette — 4.7/5 (43)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/omelette-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.7,
      "rating_count": 43,
      "notes": null
    },
    "SRC-1780962D35": {
      "id": "SRC-1780962D35",
      "title": "Healthy pepper, tomato & ham omelette — 4.6/5 (41)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/healthy-omelette-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.6,
      "rating_count": 41,
      "notes": null
    },
    "SRC-5EDCD23E60": {
      "id": "SRC-5EDCD23E60",
      "title": "Air fryer omelette — 5.0/5 (7)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/omelette-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 5.0,
      "rating_count": 7,
      "notes": null
    },
    "SRC-C1DE9F5FD9": {
      "id": "SRC-C1DE9F5FD9",
      "title": "Beef stroganoff — 4.7/5 (343)",
      "url": "https://www.bbcgoodfood.com/recipes/beef-stroganoff",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.7,
      "rating_count": 343,
      "notes": null
    },
    "SRC-89DE384F5F": {
      "id": "SRC-89DE384F5F",
      "title": "Stir-fried garlic green beans",
      "url": "https://www.bbcgoodfood.com/recipes/stir-fried-garlic-green-beans",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.8,
      "rating_count": 24,
      "notes": null
    },
    "SRC-E309A5D52B": {
      "id": "SRC-E309A5D52B",
      "title": "Green beans with shallots, garlic & toasted almonds — 4.8/5 (13)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/green-bean-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.8,
      "rating_count": 13,
      "notes": null
    },
    "SRC-CC482A5FC3": {
      "id": "SRC-CC482A5FC3",
      "title": "Beef curry — 4.7/5 (286)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/beef-recipes/",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.7,
      "rating_count": 286,
      "notes": null
    },
    "SRC-98F3FC1410": {
      "id": "SRC-98F3FC1410",
      "title": "Cauliflower purée — 5.0/5 (2)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/cauliflower-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 5.0,
      "rating_count": 2,
      "notes": null
    },
    "SRC-B1518DE66A": {
      "id": "SRC-B1518DE66A",
      "title": "Beef mince & tomato ragu — 4.5/5 (18)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/beef-mince-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.5,
      "rating_count": 18,
      "notes": null
    },
    "SRC-F0447AD9EA": {
      "id": "SRC-F0447AD9EA",
      "title": "Green beans with lemon & parmesan — 5.0/5 (9)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/green-bean-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 5.0,
      "rating_count": 9,
      "notes": null
    },
    "SRC-A3A876CA09": {
      "id": "SRC-A3A876CA09",
      "title": "Spaghetti bolognese — 4.8/5 (1207)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/beef-mince-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.8,
      "rating_count": 1207,
      "notes": null
    },
    "SRC-E9D3F66FB7": {
      "id": "SRC-E9D3F66FB7",
      "title": "Indian koftas with mint yogurt & flatbreads",
      "url": "https://www.bbcgoodfood.com/recipes/indian-koftas-mint-yogurt-flatbreads",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.8,
      "rating_count": 95,
      "notes": null
    },
    "SRC-0E25C4C87F": {
      "id": "SRC-0E25C4C87F",
      "title": "Aubergine with yogurt & tomato sauces — 4.0/5 (2)",
      "url": "https://www.bbcgoodfood.com/recipes/aubergine-yogurt-tomato-sauces",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.0,
      "rating_count": 2,
      "notes": null
    },
    "SRC-8E365AEB6D": {
      "id": "SRC-8E365AEB6D",
      "title": "Moroccan kofte with spicy tomato sauce",
      "url": "https://www.bbcgoodfood.com/recipes/moroccan-kofte-spicy-tomato-sauce",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.7,
      "rating_count": 42,
      "notes": null
    },
    "SRC-D97E9277C4": {
      "id": "SRC-D97E9277C4",
      "title": "Roasted broccoli — 4.0/5 (9)",
      "url": "https://www.bbcgoodfood.com/recipes/roasted-broccoli",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.0,
      "rating_count": 9,
      "notes": null
    },
    "SRC-A67220CDDD": {
      "id": "SRC-A67220CDDD",
      "title": "Green beans with wholegrain mustard — 4.5/5 (9)",
      "url": "https://www.bbcgoodfood.com/recipes/green-beans-wholegrain-mustard",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.5,
      "rating_count": 9,
      "notes": null
    },
    "SRC-31F2558DC1": {
      "id": "SRC-31F2558DC1",
      "title": "DIY kofta burgers — 4.6/5 (53)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/kofta-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.6,
      "rating_count": 53,
      "notes": null
    },
    "SRC-567AB4BDA3": {
      "id": "SRC-567AB4BDA3",
      "title": "Meatball stroganoff",
      "url": "https://www.bbcgoodfood.com/recipes/meatball-stroganoff",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.7,
      "rating_count": 64,
      "notes": null
    },
    "SRC-5F8FE8416C": {
      "id": "SRC-5F8FE8416C",
      "title": "Slow-cooker beef stew — 4.8/5 (682)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/beef-recipes/",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.8,
      "rating_count": 682,
      "notes": null
    },
    "SRC-D0DC37E945": {
      "id": "SRC-D0DC37E945",
      "title": "Pot-roast beef with French onion gravy — 4.5/5 (210)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/beef-recipes/",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.5,
      "rating_count": 210,
      "notes": null
    },
    "SRC-02A27AA42E": {
      "id": "SRC-02A27AA42E",
      "title": "Instant frozen berry yogurt — 4.7/5 (76)",
      "url": "https://www.bbcgoodfood.com/recipes/instant-frozen-berry-yogurt",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.7,
      "rating_count": 76,
      "notes": null
    },
    "SRC-4D44157866": {
      "id": "SRC-4D44157866",
      "title": "Strawberry frozen yogurt — 4.0/5 (50)",
      "url": "https://www.bbcgoodfood.com/recipes/frozen-strawberry-yogurt",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.0,
      "rating_count": 50,
      "notes": null
    },
    "SRC-DE379BFD3B": {
      "id": "SRC-DE379BFD3B",
      "title": "Fruity sundae — 4.3/5 (3)",
      "url": "https://www.bbcgoodfood.com/recipes/fruity-sundae",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.3,
      "rating_count": 3,
      "notes": null
    },
    "SRC-20D4788A6F": {
      "id": "SRC-20D4788A6F",
      "title": "Strawberry ice lollies — 5.0/5 (5)",
      "url": "https://www.bbcgoodfood.com/recipes/strawberry-ice-lollies",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 5.0,
      "rating_count": 5,
      "notes": null
    },
    "SRC-BFB52B879B": {
      "id": "SRC-BFB52B879B",
      "title": "Yogurt parfaits with crushed strawberries & amaretti — 5.0/5 (4)",
      "url": "https://www.bbcgoodfood.com/recipes/collection/yogurt-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 5.0,
      "rating_count": 4,
      "notes": null
    },
    "SRC-8CFAC315C0": {
      "id": "SRC-8CFAC315C0",
      "title": "Strawberry & banana almond smoothie — 4.6/5 (18)",
      "url": "https://www.bbcgoodfood.com/recipes/strawberry-banana-almond-smoothie",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.6,
      "rating_count": 18,
      "notes": null
    },
    "SRC-643FE5F773": {
      "id": "SRC-643FE5F773",
      "title": "Frozen tropical fruit yogurt — 4.7/5 (12)",
      "url": "https://www.bbcgoodfood.com/recipes/frozen-tropical-fruit-yogurt",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.7,
      "rating_count": 12,
      "notes": null
    },
    "SRC-5DCE2A5D16": {
      "id": "SRC-5DCE2A5D16",
      "title": "Super-quick fish curry",
      "url": "https://www.bbcgoodfood.com/recipes/super-quick-fish-curry",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.6,
      "rating_count": 179,
      "notes": null
    },
    "SRC-627B49D664": {
      "id": "SRC-627B49D664",
      "title": "Creamy fish curry",
      "url": "https://www.bbcgoodfood.com/recipes/creamy-fish-curry",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.8,
      "rating_count": 36,
      "notes": null
    },
    "SRC-7F8EF76EB6": {
      "id": "SRC-7F8EF76EB6",
      "title": "Fish mappas",
      "url": "https://www.bbcgoodfood.com/recipes/fish-mappas",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.7,
      "rating_count": 139,
      "notes": null
    },
    "SRC-D6F2695600": {
      "id": "SRC-D6F2695600",
      "title": "Fried fish & tomato curry",
      "url": "https://www.bbcgoodfood.com/recipes/fried-fish-tomato-curry",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.7,
      "rating_count": 48,
      "notes": null
    },
    "SRC-F6B78FAB13": {
      "id": "SRC-F6B78FAB13",
      "title": "Broiled Tilapia Parmesan — >7.900 avaliações 5 estrelas citadas pelo Allrecipes",
      "url": "https://www.allrecipes.com/recipe/50644/broiled-tilapia-parmesan/",
      "site": "Allrecipes",
      "kind": "recipe",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-9E9B51B6F8": {
      "id": "SRC-9E9B51B6F8",
      "title": "Basic omelette recipe",
      "url": "https://www.bbcgoodfood.com/recipes/basic-omelette",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.7,
      "rating_count": 117,
      "notes": null
    },
    "SRC-A07C37A0EF": {
      "id": "SRC-A07C37A0EF",
      "title": "Air fryer omelette",
      "url": "https://www.bbcgoodfood.com/recipes/collection/omelette-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 5.0,
      "rating_count": 7,
      "notes": null
    },
    "SRC-73EC562C77": {
      "id": "SRC-73EC562C77",
      "title": "Crustless quiche",
      "url": "https://www.bbcgoodfood.com/recipes/collection/fritatta-recipes/",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.6,
      "rating_count": 49,
      "notes": null
    },
    "SRC-0FB2713DE2": {
      "id": "SRC-0FB2713DE2",
      "title": "Omelette roll-up",
      "url": "https://www.bbcgoodfood.com/recipes/mexican-egg-roll",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.5,
      "rating_count": 25,
      "notes": null
    },
    "SRC-55FF831328": {
      "id": "SRC-55FF831328",
      "title": "Masala omelette muffins",
      "url": "https://www.bbcgoodfood.com/recipes/masala-omelette-muffins",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.3,
      "rating_count": 14,
      "notes": null
    },
    "SRC-7A4C9CE916": {
      "id": "SRC-7A4C9CE916",
      "title": "Ham, mushroom & spinach frittata",
      "url": "https://www.bbcgoodfood.com/recipes/collection/fritatta-recipes/",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.8,
      "rating_count": 55,
      "notes": null
    },
    "SRC-7C7CF77559": {
      "id": "SRC-7C7CF77559",
      "title": "High-protein low-carb egg bites",
      "url": "https://www.eatingwell.com/al-roker-high-protein-egg-bite-recipe-11928644",
      "site": "EatingWell",
      "kind": "recipe",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-F2BCABD66D": {
      "id": "SRC-F2BCABD66D",
      "title": "Easy oven frittata",
      "url": "https://www.bbcgoodfood.com/recipes/easy-oven-frittata",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 3.8,
      "rating_count": 80,
      "notes": null
    },
    "SRC-415FA9B3F1": {
      "id": "SRC-415FA9B3F1",
      "title": "Microwave mug omelette",
      "url": "https://www.bbcgoodfood.com/recipes/collection/omelette-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.4,
      "rating_count": 6,
      "notes": null
    },
    "SRC-2FEC385533": {
      "id": "SRC-2FEC385533",
      "title": "Cheese omelette",
      "url": "https://www.bbcgoodfood.com/recipes/collection/omelette-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.5,
      "rating_count": 12,
      "notes": null
    },
    "SRC-88BF8D7441": {
      "id": "SRC-88BF8D7441",
      "title": "Easy protein pancakes",
      "url": "https://www.bbcgoodfood.com/recipes/easy-protein-pancakes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.2,
      "rating_count": 86,
      "notes": null
    },
    "SRC-F5D734DB70": {
      "id": "SRC-F5D734DB70",
      "title": "Classic waffles",
      "url": "https://www.bbcgoodfood.com/recipes/classic-waffles/",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.2,
      "rating_count": 124,
      "notes": null
    },
    "SRC-14CCEF0B5D": {
      "id": "SRC-14CCEF0B5D",
      "title": "Classic crêpes",
      "url": "https://www.bbcgoodfood.com/recipes/classic-crepes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.3,
      "rating_count": 123,
      "notes": null
    },
    "SRC-AA7390D783": {
      "id": "SRC-AA7390D783",
      "title": "Keto mug cake",
      "url": "https://www.bbcgoodfood.com/recipes/keto-dessert-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.3,
      "rating_count": 10,
      "notes": null
    },
    "SRC-EA0A3CFBE2": {
      "id": "SRC-EA0A3CFBE2",
      "title": "Keto brownies",
      "url": "https://www.bbcgoodfood.com/recipes/keto-dessert-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.2,
      "rating_count": 5,
      "notes": null
    },
    "SRC-C40AB88FCF": {
      "id": "SRC-C40AB88FCF",
      "title": "Keto vanilla cake",
      "url": "https://www.bbcgoodfood.com/recipes/keto-vanilla-cake",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 5.0,
      "rating_count": 2,
      "notes": null
    },
    "SRC-571CE1D10C": {
      "id": "SRC-571CE1D10C",
      "title": "Keto chocolate cake",
      "url": "https://www.bbcgoodfood.com/recipes/keto-dessert-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 5.0,
      "rating_count": 7,
      "notes": null
    },
    "SRC-A119C27396": {
      "id": "SRC-A119C27396",
      "title": "Keto doughnuts",
      "url": "https://www.bbcgoodfood.com/recipes/keto-donuts",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 5.0,
      "rating_count": 3,
      "notes": null
    },
    "SRC-8AB2C3072E": {
      "id": "SRC-8AB2C3072E",
      "title": "Beef stroganoff",
      "url": "https://www.bbcgoodfood.com/recipes/beef-stroganoff",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.7,
      "rating_count": 343,
      "notes": null
    },
    "SRC-AEF5B9DDD4": {
      "id": "SRC-AEF5B9DDD4",
      "title": "Steak with chimichurri sauce",
      "url": "https://www.bbcgoodfood.com/recipes/steak-chimichurri-sauce",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.6,
      "rating_count": 27,
      "notes": null
    },
    "SRC-58CC1ECA0E": {
      "id": "SRC-58CC1ECA0E",
      "title": "Miso steak",
      "url": "https://www.bbcgoodfood.com/recipes/miso-steak",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.5,
      "rating_count": 30,
      "notes": null
    },
    "SRC-28230B968D": {
      "id": "SRC-28230B968D",
      "title": "Simple sirloin steak",
      "url": "https://www.bbcgoodfood.com/recipes/collection/steak-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.4,
      "rating_count": 36,
      "notes": null
    },
    "SRC-FF4DBC0D5A": {
      "id": "SRC-FF4DBC0D5A",
      "title": "Peppered fillet steak with parsley potatoes",
      "url": "https://www.bbcgoodfood.com/recipes/peppered-fillet-steak-parsley-potatoes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.8,
      "rating_count": 17,
      "notes": null
    },
    "SRC-2D6228D97C": {
      "id": "SRC-2D6228D97C",
      "title": "Homemade beef burgers",
      "url": "https://www.bbcgoodfood.com/recipes/beef-burgers-learn-make",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.0,
      "rating_count": 108,
      "notes": null
    },
    "SRC-2F77203D66": {
      "id": "SRC-2F77203D66",
      "title": "Lamb koftas",
      "url": "https://www.bbcgoodfood.com/recipes/lamb-koftas",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.5,
      "rating_count": 148,
      "notes": null
    },
    "SRC-2F1142BB4F": {
      "id": "SRC-2F1142BB4F",
      "title": "Moroccan kofte with spicy tomato sauce",
      "url": "https://www.bbcgoodfood.com/recipes/moroccan-kofte-spicy-tomato-sauce",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.7,
      "rating_count": 42,
      "notes": null
    },
    "SRC-08D66807B8": {
      "id": "SRC-08D66807B8",
      "title": "Frango churrasco (Grilled lemon & garlic chicken)",
      "url": "https://www.bbcgoodfood.com/recipes/frango-churrasco-grilled-lemon-garlic-chicken",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.8,
      "rating_count": 18,
      "notes": "Fonte técnica-base para frango grelhado/marinado; perfis adicionais são sustentados por seasoning_refs e adaptações registradas."
    },
    "SRC-A9091F6283": {
      "id": "SRC-A9091F6283",
      "title": "Jerk chicken",
      "url": "https://www.bbcgoodfood.com/recipes/jerk-chicken/",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.3,
      "rating_count": 36,
      "notes": null
    },
    "SRC-C52DCF7F9D": {
      "id": "SRC-C52DCF7F9D",
      "title": "Chicken tikka skewers",
      "url": "https://www.bbcgoodfood.com/recipes/chicken-tikka-skewers",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.8,
      "rating_count": 84,
      "notes": null
    },
    "SRC-A400F927EE": {
      "id": "SRC-A400F927EE",
      "title": "Easy chicken curry",
      "url": "https://www.bbcgoodfood.com/recipes/easy-chicken-curry",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.5,
      "rating_count": 360,
      "notes": null
    },
    "SRC-BAAEF5D467": {
      "id": "SRC-BAAEF5D467",
      "title": "Basil & lemon chicken meatballs",
      "url": "https://www.bbcgoodfood.com/recipes/basil-lemon-chicken-meatballs",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.8,
      "rating_count": 4,
      "notes": null
    },
    "SRC-86C8B417AE": {
      "id": "SRC-86C8B417AE",
      "title": "Pan-Seared Tilapia",
      "url": "https://www.allrecipes.com/recipe/201934/pan-seared-tilapia/",
      "site": "Allrecipes",
      "kind": "recipe",
      "rating": 4.7,
      "rating_count": 860,
      "notes": "Fonte técnica-base de tilápia; farinha/manteiga da receita-fonte são omitidas quando incompatíveis com o alvo, e o perfil aromático é sustentado por seasoning_refs."
    },
    "SRC-62670668F4": {
      "id": "SRC-62670668F4",
      "title": "Broiled Tilapia Parmesan",
      "url": "https://www.allrecipes.com/recipe/50644/broiled-tilapia-parmesan/",
      "site": "Allrecipes",
      "kind": "recipe",
      "rating": 4.7,
      "rating_count": 10279,
      "notes": null
    },
    "SRC-850D6A5D3A": {
      "id": "SRC-850D6A5D3A",
      "title": "Pork meatball bites",
      "url": "https://www.bbcgoodfood.com/recipes/asian-pork-meatballs",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.4,
      "rating_count": 13,
      "notes": null
    },
    "SRC-2227CA24C9": {
      "id": "SRC-2227CA24C9",
      "title": "Pork stroganoff",
      "url": "https://www.bbcgoodfood.com/recipes/pork-stroganoff",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.5,
      "rating_count": 47,
      "notes": null
    },
    "SRC-BA4DE63859": {
      "id": "SRC-BA4DE63859",
      "title": "Roasted broccoli",
      "url": "https://www.bbcgoodfood.com/recipes/roasted-broccoli",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.0,
      "rating_count": 9,
      "notes": null
    },
    "SRC-E83E0CA483": {
      "id": "SRC-E83E0CA483",
      "title": "Herby broccoli",
      "url": "https://www.bbcgoodfood.com/recipes/herby-broccoli",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.0,
      "rating_count": 5,
      "notes": null
    },
    "SRC-76B58D0101": {
      "id": "SRC-76B58D0101",
      "title": "Cauliflower purée",
      "url": "https://www.bbcgoodfood.com/recipes/collection/cauliflower-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 5.0,
      "rating_count": 2,
      "notes": null
    },
    "SRC-67BF43F16C": {
      "id": "SRC-67BF43F16C",
      "title": "Spicy cauliflower",
      "url": "https://www.bbcgoodfood.com/recipes/spicy-cauliflower",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.6,
      "rating_count": 44,
      "notes": null
    },
    "SRC-94F9CB1526": {
      "id": "SRC-94F9CB1526",
      "title": "Green beans with shallots, garlic & toasted almonds",
      "url": "https://www.bbcgoodfood.com/recipes/green-beans-shallots-garlic-toasted-almonds",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.8,
      "rating_count": 13,
      "notes": null
    },
    "SRC-430616225D": {
      "id": "SRC-430616225D",
      "title": "Sesame & ginger green beans",
      "url": "https://www.bbcgoodfood.com/recipes/sesame-ginger-green-beans",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.7,
      "rating_count": 9,
      "notes": null
    },
    "SRC-9FAF756059": {
      "id": "SRC-9FAF756059",
      "title": "Roast pumpkin with cream, thyme & Parmesan",
      "url": "https://www.bbcgoodfood.com/recipes/collection/pumpkin-soup-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.6,
      "rating_count": 18,
      "notes": null
    },
    "SRC-FC94FE0E5A": {
      "id": "SRC-FC94FE0E5A",
      "title": "Garlic mushrooms",
      "url": "https://www.bbcgoodfood.com/recipes/garlic-mushrooms",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.7,
      "rating_count": 28,
      "notes": null
    },
    "SRC-2E05C79E02": {
      "id": "SRC-2E05C79E02",
      "title": "How to make cauliflower rice",
      "url": "https://www.bbcgoodfood.com/videos/techniques/how-make-cauliflower-rice-video",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.5,
      "rating_count": 47,
      "notes": null
    },
    "SRC-27DD56ED21": {
      "id": "SRC-27DD56ED21",
      "title": "Pumpkin purée",
      "url": "https://www.bbcgoodfood.com/recipes/collection/pumpkin-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.6,
      "rating_count": 10,
      "notes": null
    },
    "SRC-04F03C7B96": {
      "id": "SRC-04F03C7B96",
      "title": "Roasted aubergine, tomato & basil pasta",
      "url": "https://www.bbcgoodfood.com/recipes/roasted-aubergine-tomato-basil-pasta",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.0,
      "rating_count": 18,
      "notes": null
    },
    "SRC-B14D4E6F34": {
      "id": "SRC-B14D4E6F34",
      "title": "Green beans with lemon & parmesan",
      "url": "https://www.bbcgoodfood.com/recipes/green-beans-with-lemon-parmesan",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 5.0,
      "rating_count": 9,
      "notes": null
    },
    "SRC-BBDD66BAD5": {
      "id": "SRC-BBDD66BAD5",
      "title": "Soufflé pancakes",
      "url": "https://www.bbcgoodfood.com/recipes/souffle-pancakes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-F1DBEB9274": {
      "id": "SRC-F1DBEB9274",
      "title": "Fluffy Japanese soufflé pancakes",
      "url": "https://www.bbcgoodfood.com/recipes/fluffy-japanese-pancakes-2",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 3.6,
      "rating_count": 10,
      "notes": null
    },
    "SRC-7A6D11BAC7": {
      "id": "SRC-7A6D11BAC7",
      "title": "Instant frozen berry yogurt",
      "url": "https://www.bbcgoodfood.com/recipes/instant-frozen-berry-yogurt",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.7,
      "rating_count": 76,
      "notes": null
    },
    "SRC-AB34D47A8D": {
      "id": "SRC-AB34D47A8D",
      "title": "Yogurt recipes",
      "url": "https://www.bbcgoodfood.com/recipes/collection/yogurt-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-1916763C6B": {
      "id": "SRC-1916763C6B",
      "title": "Healthy snacks with yogurt",
      "url": "https://www.eatingwell.com/healthy-yogurt-snack-recipes-11963153",
      "site": "EatingWell",
      "kind": "recipe",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-F3BE9AEE44": {
      "id": "SRC-F3BE9AEE44",
      "title": "31 high-protein snacks",
      "url": "https://www.bbcgoodfood.com/recipes/collection/high-protein-snack-recipes/",
      "site": "Good Food",
      "kind": "recipe",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-D2DB83ACE8": {
      "id": "SRC-D2DB83ACE8",
      "title": "Easy meatballs",
      "url": "https://www.bbcgoodfood.com/recipes/maisies-marvellous-meatballs",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.2,
      "rating_count": 12,
      "notes": null
    },
    "SRC-657D2CF965": {
      "id": "SRC-657D2CF965",
      "title": "Chicken mince recipes",
      "url": "https://www.bbcgoodfood.com/recipes/collection/chicken-mince-recipes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": null,
      "rating_count": null,
      "notes": null
    },
    "SRC-14024CE8FA": {
      "id": "SRC-14024CE8FA",
      "title": "Lemon & rosemary pork with chickpea salad",
      "url": "https://www.bbcgoodfood.com/recipes/lemon-rosemary-pork-chickpea-salad",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.3,
      "rating_count": 26,
      "notes": null
    },
    "SRC-001A054ACD": {
      "id": "SRC-001A054ACD",
      "title": "Lemon & fennel pork meatballs",
      "url": "https://www.bbcgoodfood.com/recipes/lemon-fennel-pork-meatballs",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 3.9,
      "rating_count": 19,
      "notes": null
    },
    "SRC-E7030B5E00": {
      "id": "SRC-E7030B5E00",
      "title": "Mini chicken bagel burgers",
      "url": "https://www.bbcgoodfood.com/recipes/mini-chicken-bagel-burgers",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.3,
      "rating_count": 12,
      "notes": null
    },
    "SRC-DB4B66F04A": {
      "id": "SRC-DB4B66F04A",
      "title": "Chicken koftas with hummus & salad",
      "url": "https://www.bbcgoodfood.com/recipes/chicken-koftas-with-hummus-salad",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.5,
      "rating_count": 9,
      "notes": null
    },
    "SRC-419B2CE79F": {
      "id": "SRC-419B2CE79F",
      "title": "Indian beef keema with carrots & potatoes",
      "url": "https://www.bbcgoodfood.com/recipes/indian-beef-keema-carrots-potatoes",
      "site": "Good Food",
      "kind": "recipe",
      "rating": 4.6,
      "rating_count": 80,
      "notes": null
    },
    "SRC-YIELD-USDA-MEAT": {
      "id": "SRC-YIELD-USDA-MEAT",
      "title": "USDA Food Buying Guide — Meats/Meat Alternates Yield Table",
      "url": "https://foodbuyingguide.fns.usda.gov/files/Reports/USDA_FBG_Section1_MeatsAndMeatAlternatesYieldTable.pdf",
      "site": "USDA",
      "kind": "yield_reference",
      "rating": null,
      "rating_count": null,
      "notes": "Raw-to-cooked production yields for meat, poultry and fish. Updated USDA FBG table."
    },
    "SRC-YIELD-USDA-VEG": {
      "id": "SRC-YIELD-USDA-VEG",
      "title": "USDA Food Buying Guide — Vegetables Yield Table",
      "url": "https://foodbuyingguide.fns.usda.gov/files/Reports/USDA_FBG_Section2_VegetablesYieldTable.pdf",
      "site": "USDA",
      "kind": "yield_reference",
      "rating": null,
      "rating_count": null,
      "notes": "Preparation and raw-to-cooked yields for vegetables."
    },
    "SRC-YIELD-USDA-AH102": {
      "id": "SRC-YIELD-USDA-AH102",
      "title": "USDA Agriculture Handbook 102 — Food Yields Summarized by Different Stages of Preparation",
      "url": "https://www.ars.usda.gov/ARSUserFiles/80400530/pdf/ah102.pdf",
      "site": "USDA",
      "kind": "yield_reference",
      "rating": null,
      "rating_count": null,
      "notes": "Historical USDA empirical yield table used where the current Food Buying Guide does not expose a direct raw-ready-to-cook → cooked factor."
    },
    "SRC-YIELD-USDA-ALMOND": {
      "id": "SRC-YIELD-USDA-ALMOND",
      "title": "USDA AMS Section 32 Specification for Whole Shelled Almonds",
      "url": "https://www.ams.usda.gov/sites/default/files/media/Section32SpecificationforWholeShelledAlmondsAugust2022.pdf",
      "site": "USDA",
      "kind": "yield_reference",
      "rating": null,
      "rating_count": null,
      "notes": "USDA maximum-moisture specifications used only to derive a low-confidence dry-roasting planning approximation: roasted <3.5%; natural pasteurized <6.5%."
    }
  },
  "recipe_library": {
    "LEG-B01": {
      "id": "LEG-B01",
      "name": "Omelete clássica de queijo + frango churrasco de limão e alho",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frigideira antiaderente; omelete dobrada; grelhado/chapado em tiras",
      "seasoning_text": "sal, pimenta-do-reino; limão, alho, páprica, pimenta",
      "seasoning_refs": [
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-4E6E7E712F",
        "SRC-EC9CFA9DDA"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: sal, pimenta-do-reino; limão, alho, páprica, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.9,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete clássica de queijo",
            "source_method_ids": [
              "PM-SRC-4E6E7E712F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente",
              "batedor ou garfo",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater os ovos e temperar."
              },
              {
                "order": 2,
                "instruction": "Aquecer a frigideira em fogo médio-baixo com a gordura prevista na porção."
              },
              {
                "order": 3,
                "instruction": "Adicionar os ovos; à medida que firmarem, puxar as partes cozidas para o centro e inclinar a frigideira para o ovo ainda líquido ocupar os espaços."
              },
              {
                "order": 4,
                "instruction": "Quando estiver quase firme, adicionar o recheio autorizado, dobrar e retirar antes de ressecar."
              }
            ],
            "source_time_reference": [
              "cerca de 5 min de cocção na receita básica"
            ],
            "source_temperature_reference": [
              "fogo médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "omelete firme por fora e ainda macia/úmida no interior"
            ],
            "adaptation_guardrails": [
              "Usar apenas o queijo e demais recheios presentes na porção adaptada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango churrasco de limão e alho",
            "source_method_ids": [
              "PM-SRC-EC9CFA9DDA"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela não metálica",
              "grelha/chapa ou grill",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro."
              },
              {
                "order": 3,
                "instruction": "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada."
              },
              {
                "order": 4,
                "instruction": "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h"
            ],
            "source_temperature_reference": [
              "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido"
            ],
            "texture_or_doneness_endpoint": [
              "bem dourado por fora e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
              "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frigideira antiaderente; omelete dobrada; grelhado/chapado em tiras",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-4E6E7E712F",
            "PM-SRC-EC9CFA9DDA"
          ]
        }
      }
    },
    "LEG-B02": {
      "id": "LEG-B02",
      "name": "Omelete clássica de queijo + frango ao limão e tomilho",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frigideira antiaderente; omelete dobrada; grelha bem quente; exterior marcado",
      "seasoning_text": "sal, pimenta-do-reino; limão, tomilho, pimenta",
      "seasoning_refs": [
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-4E6E7E712F",
        "SRC-ECA8E1F8D9"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: sal, pimenta-do-reino; limão, tomilho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 117,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete clássica de queijo",
            "source_method_ids": [
              "PM-SRC-4E6E7E712F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente",
              "batedor ou garfo",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater os ovos e temperar."
              },
              {
                "order": 2,
                "instruction": "Aquecer a frigideira em fogo médio-baixo com a gordura prevista na porção."
              },
              {
                "order": 3,
                "instruction": "Adicionar os ovos; à medida que firmarem, puxar as partes cozidas para o centro e inclinar a frigideira para o ovo ainda líquido ocupar os espaços."
              },
              {
                "order": 4,
                "instruction": "Quando estiver quase firme, adicionar o recheio autorizado, dobrar e retirar antes de ressecar."
              }
            ],
            "source_time_reference": [
              "cerca de 5 min de cocção na receita básica"
            ],
            "source_temperature_reference": [
              "fogo médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "omelete firme por fora e ainda macia/úmida no interior"
            ],
            "adaptation_guardrails": [
              "Usar apenas o queijo e demais recheios presentes na porção adaptada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango ao limão e tomilho",
            "source_method_ids": [
              "PM-SRC-ECA8E1F8D9"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "grelha/chapa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar peito de frango com raspas/suco de limão, alho, tomilho e azeite autorizado."
              },
              {
                "order": 2,
                "instruction": "Temperar e colocar em chapa/grelha já quente."
              },
              {
                "order": 3,
                "instruction": "Grelhar dos dois lados até bem marcado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte: 4–5 min por lado para peito"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "exterior marcado; interior cozido e suculento"
            ],
            "adaptation_guardrails": [
              "Não adicionar acompanhamentos da fonte.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frigideira antiaderente; omelete dobrada; grelha bem quente; exterior marcado",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-4E6E7E712F",
            "PM-SRC-ECA8E1F8D9"
          ]
        }
      }
    },
    "LEG-B03": {
      "id": "LEG-B03",
      "name": "Omelete clássica de queijo + frango jerk",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frigideira antiaderente; omelete dobrada; grelhado/assado; marinada intensa",
      "seasoning_text": "sal, pimenta-do-reino; pimenta, tomilho, pimenta-da-jamaica, alho, gengibre",
      "seasoning_refs": [
        "T101",
        "T098"
      ],
      "source_ids": [
        "SRC-4E6E7E712F",
        "SRC-BA7CAF57D8"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: sal, pimenta-do-reino; pimenta, tomilho, pimenta-da-jamaica, alho, gengibre — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 117,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete clássica de queijo",
            "source_method_ids": [
              "PM-SRC-4E6E7E712F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente",
              "batedor ou garfo",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater os ovos e temperar."
              },
              {
                "order": 2,
                "instruction": "Aquecer a frigideira em fogo médio-baixo com a gordura prevista na porção."
              },
              {
                "order": 3,
                "instruction": "Adicionar os ovos; à medida que firmarem, puxar as partes cozidas para o centro e inclinar a frigideira para o ovo ainda líquido ocupar os espaços."
              },
              {
                "order": 4,
                "instruction": "Quando estiver quase firme, adicionar o recheio autorizado, dobrar e retirar antes de ressecar."
              }
            ],
            "source_time_reference": [
              "cerca de 5 min de cocção na receita básica"
            ],
            "source_temperature_reference": [
              "fogo médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "omelete firme por fora e ainda macia/úmida no interior"
            ],
            "adaptation_guardrails": [
              "Usar apenas o queijo e demais recheios presentes na porção adaptada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango jerk",
            "source_method_ids": [
              "PM-SRC-BA7CAF57D8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador ou pilão",
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Processar/misturar os temperos jerk, alho, gengibre, tomilho, pimenta e limão/lima autorizados até formar pasta."
              },
              {
                "order": 2,
                "instruction": "Cobrir o frango uniformemente com a pasta."
              },
              {
                "order": 3,
                "instruction": "Assar ou grelhar até dourar e cozinhar por completo."
              }
            ],
            "source_time_reference": [
              "fonte para coxas com osso: 45–50 min"
            ],
            "source_temperature_reference": [
              "200°C / 180°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado, aromático e cozido"
            ],
            "adaptation_guardrails": [
              "Coconut cream e demais ingredientes da fonte só entram se constarem na adaptação; tempo da coxa não deve ser aplicado ao peito.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frigideira antiaderente; omelete dobrada; grelhado/assado; marinada intensa",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-4E6E7E712F",
            "PM-SRC-BA7CAF57D8"
          ]
        }
      }
    },
    "LEG-B04": {
      "id": "LEG-B04",
      "name": "Omelete clássica de queijo + frango ao iogurte e limão",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frigideira antiaderente; omelete dobrada; marinado no iogurte e grelhado",
      "seasoning_text": "sal, pimenta-do-reino; limão, alho, ervas",
      "seasoning_refs": [
        "T028",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-4E6E7E712F",
        "SRC-2F02D19B19"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: sal, pimenta-do-reino; limão, alho, ervas — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 117,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete clássica de queijo",
            "source_method_ids": [
              "PM-SRC-4E6E7E712F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente",
              "batedor ou garfo",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater os ovos e temperar."
              },
              {
                "order": 2,
                "instruction": "Aquecer a frigideira em fogo médio-baixo com a gordura prevista na porção."
              },
              {
                "order": 3,
                "instruction": "Adicionar os ovos; à medida que firmarem, puxar as partes cozidas para o centro e inclinar a frigideira para o ovo ainda líquido ocupar os espaços."
              },
              {
                "order": 4,
                "instruction": "Quando estiver quase firme, adicionar o recheio autorizado, dobrar e retirar antes de ressecar."
              }
            ],
            "source_time_reference": [
              "cerca de 5 min de cocção na receita básica"
            ],
            "source_temperature_reference": [
              "fogo médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "omelete firme por fora e ainda macia/úmida no interior"
            ],
            "adaptation_guardrails": [
              "Usar apenas o queijo e demais recheios presentes na porção adaptada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango ao iogurte e limão",
            "source_method_ids": [
              "PM-SRC-2F02D19B19"
            ],
            "grounding_level": "existing_sourced_overview",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Aplicar esta característica operacional da ficha: frigideira antiaderente."
              },
              {
                "order": 2,
                "instruction": "Aplicar esta característica operacional da ficha: omelete dobrada."
              },
              {
                "order": 3,
                "instruction": "Executar a etapa de selagem/grelha descrita no overview da receita, buscando dourado sem ressecar."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frigideira antiaderente; omelete dobrada; marinado no iogurte e grelhado",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 1,
          "all_source_method_ids": [
            "PM-SRC-4E6E7E712F",
            "PM-SRC-2F02D19B19"
          ]
        }
      }
    },
    "LEG-B05": {
      "id": "LEG-B05",
      "name": "Omelete grega de tomate e cebola + frango ao limão e orégano",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frigideira; recheio úmido de tomate/cebola; assado ou grelhado em cubos",
      "seasoning_text": "orégano, pimenta; limão, orégano, alho",
      "seasoning_refs": [
        "T034",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-09216EB51F",
        "SRC-E54E273CF8"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: orégano, pimenta; limão, orégano, alho — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 63,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023",
            "ING024"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete grega de tomate e cebola",
            "source_method_ids": [
              "PM-SRC-09216EB51F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente apta para grill/forno",
              "batedor",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer o grill/forno superior e bater os ovos."
              },
              {
                "order": 2,
                "instruction": "Dourar cebola em fogo alto; adicionar tomate e cozinhar brevemente até começar a amolecer."
              },
              {
                "order": 3,
                "instruction": "Baixar para fogo médio, adicionar os ovos e mexer enquanto começam a firmar, deixando pontos ainda líquidos."
              },
              {
                "order": 4,
                "instruction": "Distribuir o queijo da versão adaptada e finalizar sob grill até inflar e dourar."
              }
            ],
            "source_time_reference": [
              "cebola ~4 min; tomate 1–2 min; ovos ~2 min no fogão; grill 5–6 min"
            ],
            "source_temperature_reference": [
              "fogo alto → médio; grill alto"
            ],
            "texture_or_doneness_endpoint": [
              "inflada, dourada e firme, sem ressecar"
            ],
            "adaptation_guardrails": [
              "Feta/azeitonas só entram se constarem na versão adaptada; quando indicado, muçarela zero lactose substitui feta.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango ao limão e orégano",
            "source_method_ids": [
              "PM-SRC-E54E273CF8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Temperar o frango com limão, orégano e a gordura prevista."
              },
              {
                "order": 2,
                "instruction": "Assar em assadeira quente, deixando espaço entre os pedaços para dourar."
              },
              {
                "order": 3,
                "instruction": "Virar/reorganizar se necessário e retirar quando dourado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte para coxas usa etapas de 20 min e total ~40 min após entrar o frango"
            ],
            "source_temperature_reference": [
              "220°C / 200°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A adaptação normalmente usa peito/cubos e remove batata, bacon, vinho e caldo; portanto o tempo da fonte não é transferível literalmente.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frigideira; recheio úmido de tomate/cebola; assado ou grelhado em cubos",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-09216EB51F",
            "PM-SRC-E54E273CF8"
          ]
        }
      }
    },
    "LEG-B06": {
      "id": "LEG-B06",
      "name": "Omelete grega de tomate e cebola + frango souvlaki",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frigideira; recheio úmido de tomate/cebola; cubos em espetos ou frigideira bem quente",
      "seasoning_text": "orégano, pimenta; limão, alho, orégano",
      "seasoning_refs": [
        "T002",
        "T034",
        "T021"
      ],
      "source_ids": [
        "SRC-09216EB51F",
        "SRC-48B8FB322E"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: orégano, pimenta; limão, alho, orégano — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 230,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023",
            "ING024"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete grega de tomate e cebola",
            "source_method_ids": [
              "PM-SRC-09216EB51F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente apta para grill/forno",
              "batedor",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer o grill/forno superior e bater os ovos."
              },
              {
                "order": 2,
                "instruction": "Dourar cebola em fogo alto; adicionar tomate e cozinhar brevemente até começar a amolecer."
              },
              {
                "order": 3,
                "instruction": "Baixar para fogo médio, adicionar os ovos e mexer enquanto começam a firmar, deixando pontos ainda líquidos."
              },
              {
                "order": 4,
                "instruction": "Distribuir o queijo da versão adaptada e finalizar sob grill até inflar e dourar."
              }
            ],
            "source_time_reference": [
              "cebola ~4 min; tomate 1–2 min; ovos ~2 min no fogão; grill 5–6 min"
            ],
            "source_temperature_reference": [
              "fogo alto → médio; grill alto"
            ],
            "texture_or_doneness_endpoint": [
              "inflada, dourada e firme, sem ressecar"
            ],
            "adaptation_guardrails": [
              "Feta/azeitonas só entram se constarem na versão adaptada; quando indicado, muçarela zero lactose substitui feta.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango souvlaki",
            "source_method_ids": [
              "PM-SRC-48B8FB322E"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "espetos ou frigideira/grelha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cortar o frango em pedaços uniformes e envolver com limão, alho, orégano/ervas e gordura autorizada."
              },
              {
                "order": 2,
                "instruction": "Marinar quando a ficha permitir."
              },
              {
                "order": 3,
                "instruction": "Grelhar em espetos ou em frigideira bem quente em camada única, virando para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir o molho de iogurte separadamente quando previsto."
              }
            ],
            "source_time_reference": [
              "fonte de família de barbecue/souvlaki; tempo varia com o corte"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "cubos/tiras bem dourados e cozidos"
            ],
            "adaptation_guardrails": [
              "Não usar pão, beterraba ou acompanhamentos da fonte que não constem na alternativa.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frigideira; recheio úmido de tomate/cebola; cubos em espetos ou frigideira bem quente",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-09216EB51F",
            "PM-SRC-48B8FB322E"
          ]
        }
      }
    },
    "LEG-B07": {
      "id": "LEG-B07",
      "name": "Omelete grega de tomate e cebola + frango ao iogurte e limão",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frigideira; recheio úmido de tomate/cebola; marinado no iogurte e grelhado",
      "seasoning_text": "orégano, pimenta; limão, alho, ervas",
      "seasoning_refs": [
        "T028",
        "T034",
        "T021"
      ],
      "source_ids": [
        "SRC-09216EB51F",
        "SRC-2F02D19B19"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: orégano, pimenta; limão, alho, ervas — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 63,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023",
            "ING024"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete grega de tomate e cebola",
            "source_method_ids": [
              "PM-SRC-09216EB51F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente apta para grill/forno",
              "batedor",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer o grill/forno superior e bater os ovos."
              },
              {
                "order": 2,
                "instruction": "Dourar cebola em fogo alto; adicionar tomate e cozinhar brevemente até começar a amolecer."
              },
              {
                "order": 3,
                "instruction": "Baixar para fogo médio, adicionar os ovos e mexer enquanto começam a firmar, deixando pontos ainda líquidos."
              },
              {
                "order": 4,
                "instruction": "Distribuir o queijo da versão adaptada e finalizar sob grill até inflar e dourar."
              }
            ],
            "source_time_reference": [
              "cebola ~4 min; tomate 1–2 min; ovos ~2 min no fogão; grill 5–6 min"
            ],
            "source_temperature_reference": [
              "fogo alto → médio; grill alto"
            ],
            "texture_or_doneness_endpoint": [
              "inflada, dourada e firme, sem ressecar"
            ],
            "adaptation_guardrails": [
              "Feta/azeitonas só entram se constarem na versão adaptada; quando indicado, muçarela zero lactose substitui feta.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango ao iogurte e limão",
            "source_method_ids": [
              "PM-SRC-2F02D19B19"
            ],
            "grounding_level": "existing_sourced_overview",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Aplicar esta característica operacional da ficha: frigideira."
              },
              {
                "order": 2,
                "instruction": "Aplicar esta característica operacional da ficha: recheio úmido de tomate/cebola."
              },
              {
                "order": 3,
                "instruction": "Executar a etapa de selagem/grelha descrita no overview da receita, buscando dourado sem ressecar."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frigideira; recheio úmido de tomate/cebola; marinado no iogurte e grelhado",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 1,
          "all_source_method_ids": [
            "PM-SRC-09216EB51F",
            "PM-SRC-2F02D19B19"
          ]
        }
      }
    },
    "LEG-B08": {
      "id": "LEG-B08",
      "name": "Omelete grega de tomate e cebola + paillard de frango com limão e ervas",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frigideira; recheio úmido de tomate/cebola; filé fino batido e grelhado rapidamente",
      "seasoning_text": "orégano, pimenta; limão, salsa, ervas",
      "seasoning_refs": [
        "T034",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-09216EB51F",
        "SRC-1A3490590C"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: orégano, pimenta; limão, salsa, ervas — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 63,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023",
            "ING024"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete grega de tomate e cebola",
            "source_method_ids": [
              "PM-SRC-09216EB51F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente apta para grill/forno",
              "batedor",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer o grill/forno superior e bater os ovos."
              },
              {
                "order": 2,
                "instruction": "Dourar cebola em fogo alto; adicionar tomate e cozinhar brevemente até começar a amolecer."
              },
              {
                "order": 3,
                "instruction": "Baixar para fogo médio, adicionar os ovos e mexer enquanto começam a firmar, deixando pontos ainda líquidos."
              },
              {
                "order": 4,
                "instruction": "Distribuir o queijo da versão adaptada e finalizar sob grill até inflar e dourar."
              }
            ],
            "source_time_reference": [
              "cebola ~4 min; tomate 1–2 min; ovos ~2 min no fogão; grill 5–6 min"
            ],
            "source_temperature_reference": [
              "fogo alto → médio; grill alto"
            ],
            "texture_or_doneness_endpoint": [
              "inflada, dourada e firme, sem ressecar"
            ],
            "adaptation_guardrails": [
              "Feta/azeitonas só entram se constarem na versão adaptada; quando indicado, muçarela zero lactose substitui feta.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "paillard de frango com limão e ervas",
            "source_method_ids": [
              "PM-SRC-1A3490590C"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "martelo de carne ou rolo",
              "papel manteiga/filme",
              "grelha/chapa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Achatar o peito entre folhas até espessura uniforme de aproximadamente 0,5 cm."
              },
              {
                "order": 2,
                "instruction": "Misturar alho, ervas, limão, azeite e temperos autorizados; cobrir o frango e marinar sob refrigeração."
              },
              {
                "order": 3,
                "instruction": "Grelhar rapidamente em superfície muito quente, virando uma vez."
              },
              {
                "order": 4,
                "instruction": "Descansar por alguns minutos antes de servir ou fatiar."
              }
            ],
            "source_time_reference": [
              "marinada ≥2 h; fonte: 1–2 min por lado para 0,5 cm"
            ],
            "source_temperature_reference": [
              "grelha/chapa muito quente"
            ],
            "texture_or_doneness_endpoint": [
              "marcas de grelha e centro cozido sem ressecar"
            ],
            "adaptation_guardrails": [
              "O tempo de 1–2 min/lado pressupõe a espessura fina da fonte.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frigideira; recheio úmido de tomate/cebola; filé fino batido e grelhado rapidamente",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-09216EB51F",
            "PM-SRC-1A3490590C"
          ]
        }
      }
    },
    "LEG-B09": {
      "id": "LEG-B09",
      "name": "Omelete de cogumelos e manjericão + paillard de frango com limão e ervas",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "cogumelo salteado; omelete macia; filé fino batido e grelhado rapidamente",
      "seasoning_text": "manjericão, alho, pimenta; limão, salsa, ervas",
      "seasoning_refs": [
        "T046",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-AA1FF0AF1B",
        "SRC-1A3490590C"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: manjericão, alho, pimenta; limão, salsa, ervas — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 43,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING025"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING025",
              "raw_state": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
              "yield_factor": 0.44,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de cogumelos e manjericão",
            "source_method_ids": [
              "PM-SRC-AA1FF0AF1B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente",
              "tigela",
              "garfo/batedor",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar/cozinhar os cogumelos primeiro até macios e com pouca água residual; a fonte usa 5–8 min."
              },
              {
                "order": 2,
                "instruction": "Bater os ovos com os temperos/ervas autorizados."
              },
              {
                "order": 3,
                "instruction": "Adicionar à frigideira quente e, nos primeiros segundos, mover delicadamente partes firmes para permitir que ovo líquido alcance o fundo."
              },
              {
                "order": 4,
                "instruction": "Enquanto o centro ainda estiver ligeiramente úmido, adicionar cogumelos e demais recheios autorizados, dobrar e terminar brevemente; a fonte usa cerca de 1 min após rechear."
              }
            ],
            "source_time_reference": [
              "fonte: cogumelos 5–8 min; omelete ~1 min após rechear"
            ],
            "source_temperature_reference": [
              "fogo médio"
            ],
            "texture_or_doneness_endpoint": [
              "cogumelos macios/dourados e omelete recém-firme, ainda macia"
            ],
            "adaptation_guardrails": [
              "Tomate e cream cheese da fonte só entram se autorizados; priorizar zero lactose quando aplicável.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "paillard de frango com limão e ervas",
            "source_method_ids": [
              "PM-SRC-1A3490590C"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "martelo de carne ou rolo",
              "papel manteiga/filme",
              "grelha/chapa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Achatar o peito entre folhas até espessura uniforme de aproximadamente 0,5 cm."
              },
              {
                "order": 2,
                "instruction": "Misturar alho, ervas, limão, azeite e temperos autorizados; cobrir o frango e marinar sob refrigeração."
              },
              {
                "order": 3,
                "instruction": "Grelhar rapidamente em superfície muito quente, virando uma vez."
              },
              {
                "order": 4,
                "instruction": "Descansar por alguns minutos antes de servir ou fatiar."
              }
            ],
            "source_time_reference": [
              "marinada ≥2 h; fonte: 1–2 min por lado para 0,5 cm"
            ],
            "source_temperature_reference": [
              "grelha/chapa muito quente"
            ],
            "texture_or_doneness_endpoint": [
              "marcas de grelha e centro cozido sem ressecar"
            ],
            "adaptation_guardrails": [
              "O tempo de 1–2 min/lado pressupõe a espessura fina da fonte.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "cogumelo salteado; omelete macia; filé fino batido e grelhado rapidamente",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AA1FF0AF1B",
            "PM-SRC-1A3490590C"
          ]
        }
      }
    },
    "LEG-B10": {
      "id": "LEG-B10",
      "name": "Omelete de cogumelos e manjericão + frango gyros",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "cogumelo salteado; omelete macia; tiras bem douradas, molho de iogurte à parte",
      "seasoning_text": "manjericão, alho, pimenta; orégano, alho, limão, páprica",
      "seasoning_refs": [
        "T002",
        "T028",
        "T046"
      ],
      "source_ids": [
        "SRC-AA1FF0AF1B",
        "SRC-E18543333B"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: manjericão, alho, pimenta; orégano, alho, limão, páprica — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.6,
        "best_rating_count": 100,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING025"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING025",
              "raw_state": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
              "yield_factor": 0.44,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de cogumelos e manjericão",
            "source_method_ids": [
              "PM-SRC-AA1FF0AF1B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente",
              "tigela",
              "garfo/batedor",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar/cozinhar os cogumelos primeiro até macios e com pouca água residual; a fonte usa 5–8 min."
              },
              {
                "order": 2,
                "instruction": "Bater os ovos com os temperos/ervas autorizados."
              },
              {
                "order": 3,
                "instruction": "Adicionar à frigideira quente e, nos primeiros segundos, mover delicadamente partes firmes para permitir que ovo líquido alcance o fundo."
              },
              {
                "order": 4,
                "instruction": "Enquanto o centro ainda estiver ligeiramente úmido, adicionar cogumelos e demais recheios autorizados, dobrar e terminar brevemente; a fonte usa cerca de 1 min após rechear."
              }
            ],
            "source_time_reference": [
              "fonte: cogumelos 5–8 min; omelete ~1 min após rechear"
            ],
            "source_temperature_reference": [
              "fogo médio"
            ],
            "texture_or_doneness_endpoint": [
              "cogumelos macios/dourados e omelete recém-firme, ainda macia"
            ],
            "adaptation_guardrails": [
              "Tomate e cream cheese da fonte só entram se autorizados; priorizar zero lactose quando aplicável.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango gyros",
            "source_method_ids": [
              "PM-SRC-E18543333B"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "espetos ou frigideira/grelha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cortar o frango em pedaços uniformes e envolver com limão, alho, orégano/ervas e gordura autorizada."
              },
              {
                "order": 2,
                "instruction": "Marinar quando a ficha permitir."
              },
              {
                "order": 3,
                "instruction": "Grelhar em espetos ou em frigideira bem quente em camada única, virando para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir o molho de iogurte separadamente quando previsto."
              }
            ],
            "source_time_reference": [
              "fonte de família de barbecue/souvlaki; tempo varia com o corte"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "cubos/tiras bem dourados e cozidos"
            ],
            "adaptation_guardrails": [
              "Não usar pão, beterraba ou acompanhamentos da fonte que não constem na alternativa.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "cogumelo salteado; omelete macia; tiras bem douradas, molho de iogurte à parte",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AA1FF0AF1B",
            "PM-SRC-E18543333B"
          ]
        }
      }
    },
    "LEG-B11": {
      "id": "LEG-B11",
      "name": "Omelete de cogumelos e manjericão + frango churrasco de limão e alho",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "cogumelo salteado; omelete macia; grelhado/chapado em tiras",
      "seasoning_text": "manjericão, alho, pimenta; limão, alho, páprica, pimenta",
      "seasoning_refs": [
        "T046",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-AA1FF0AF1B",
        "SRC-EC9CFA9DDA"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: manjericão, alho, pimenta; limão, alho, páprica, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.9,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING025"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING025",
              "raw_state": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
              "yield_factor": 0.44,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de cogumelos e manjericão",
            "source_method_ids": [
              "PM-SRC-AA1FF0AF1B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente",
              "tigela",
              "garfo/batedor",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar/cozinhar os cogumelos primeiro até macios e com pouca água residual; a fonte usa 5–8 min."
              },
              {
                "order": 2,
                "instruction": "Bater os ovos com os temperos/ervas autorizados."
              },
              {
                "order": 3,
                "instruction": "Adicionar à frigideira quente e, nos primeiros segundos, mover delicadamente partes firmes para permitir que ovo líquido alcance o fundo."
              },
              {
                "order": 4,
                "instruction": "Enquanto o centro ainda estiver ligeiramente úmido, adicionar cogumelos e demais recheios autorizados, dobrar e terminar brevemente; a fonte usa cerca de 1 min após rechear."
              }
            ],
            "source_time_reference": [
              "fonte: cogumelos 5–8 min; omelete ~1 min após rechear"
            ],
            "source_temperature_reference": [
              "fogo médio"
            ],
            "texture_or_doneness_endpoint": [
              "cogumelos macios/dourados e omelete recém-firme, ainda macia"
            ],
            "adaptation_guardrails": [
              "Tomate e cream cheese da fonte só entram se autorizados; priorizar zero lactose quando aplicável.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango churrasco de limão e alho",
            "source_method_ids": [
              "PM-SRC-EC9CFA9DDA"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela não metálica",
              "grelha/chapa ou grill",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro."
              },
              {
                "order": 3,
                "instruction": "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada."
              },
              {
                "order": 4,
                "instruction": "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h"
            ],
            "source_temperature_reference": [
              "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido"
            ],
            "texture_or_doneness_endpoint": [
              "bem dourado por fora e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
              "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "cogumelo salteado; omelete macia; grelhado/chapado em tiras",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AA1FF0AF1B",
            "PM-SRC-EC9CFA9DDA"
          ]
        }
      }
    },
    "LEG-B12": {
      "id": "LEG-B12",
      "name": "Omelete de cogumelos e manjericão + frango ao limão e tomilho",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "cogumelo salteado; omelete macia; grelha bem quente; exterior marcado",
      "seasoning_text": "manjericão, alho, pimenta; limão, tomilho, pimenta",
      "seasoning_refs": [
        "T046",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-AA1FF0AF1B",
        "SRC-ECA8E1F8D9"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: manjericão, alho, pimenta; limão, tomilho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.4,
        "best_rating_count": 24,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING025"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING025",
              "raw_state": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
              "yield_factor": 0.44,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de cogumelos e manjericão",
            "source_method_ids": [
              "PM-SRC-AA1FF0AF1B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente",
              "tigela",
              "garfo/batedor",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar/cozinhar os cogumelos primeiro até macios e com pouca água residual; a fonte usa 5–8 min."
              },
              {
                "order": 2,
                "instruction": "Bater os ovos com os temperos/ervas autorizados."
              },
              {
                "order": 3,
                "instruction": "Adicionar à frigideira quente e, nos primeiros segundos, mover delicadamente partes firmes para permitir que ovo líquido alcance o fundo."
              },
              {
                "order": 4,
                "instruction": "Enquanto o centro ainda estiver ligeiramente úmido, adicionar cogumelos e demais recheios autorizados, dobrar e terminar brevemente; a fonte usa cerca de 1 min após rechear."
              }
            ],
            "source_time_reference": [
              "fonte: cogumelos 5–8 min; omelete ~1 min após rechear"
            ],
            "source_temperature_reference": [
              "fogo médio"
            ],
            "texture_or_doneness_endpoint": [
              "cogumelos macios/dourados e omelete recém-firme, ainda macia"
            ],
            "adaptation_guardrails": [
              "Tomate e cream cheese da fonte só entram se autorizados; priorizar zero lactose quando aplicável.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango ao limão e tomilho",
            "source_method_ids": [
              "PM-SRC-ECA8E1F8D9"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "grelha/chapa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar peito de frango com raspas/suco de limão, alho, tomilho e azeite autorizado."
              },
              {
                "order": 2,
                "instruction": "Temperar e colocar em chapa/grelha já quente."
              },
              {
                "order": 3,
                "instruction": "Grelhar dos dois lados até bem marcado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte: 4–5 min por lado para peito"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "exterior marcado; interior cozido e suculento"
            ],
            "adaptation_guardrails": [
              "Não adicionar acompanhamentos da fonte.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "cogumelo salteado; omelete macia; grelha bem quente; exterior marcado",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AA1FF0AF1B",
            "PM-SRC-ECA8E1F8D9"
          ]
        }
      }
    },
    "LEG-B13": {
      "id": "LEG-B13",
      "name": "Omelete de tomate e ervas + frango ao limão e tomilho",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "tomate selado e omelete fina; grelha bem quente; exterior marcado",
      "seasoning_text": "ervas frescas, pimenta; limão, tomilho, pimenta",
      "seasoning_refs": [
        "T034",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-A280B37386",
        "SRC-ECA8E1F8D9"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: ervas frescas, pimenta; limão, tomilho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.3,
        "best_rating_count": 40,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de tomate e ervas",
            "source_method_ids": [
              "PM-SRC-A280B37386"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira pequena antiaderente",
              "tigela",
              "colher de pau/espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Se tomate estiver autorizado, dourá-lo com o lado cortado para baixo até começar a amolecer e ganhar cor; reservar."
              },
              {
                "order": 2,
                "instruction": "Bater os ovos com as ervas e pimenta autorizadas."
              },
              {
                "order": 3,
                "instruction": "Adicionar os ovos à frigideira e mover delicadamente a parte que firma no fundo para permitir que ovo ainda líquido ocupe o espaço."
              },
              {
                "order": 4,
                "instruction": "Parar de mexer quando estiver quase cozido e deixar firmar em formato de omelete."
              }
            ],
            "source_time_reference": [
              "fonte: receita cozinha em ~5 min"
            ],
            "source_temperature_reference": [
              "fogo médio"
            ],
            "texture_or_doneness_endpoint": [
              "omelete recém-firme e macia"
            ],
            "adaptation_guardrails": [
              "Tomate entra somente quando constar da adaptação.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango ao limão e tomilho",
            "source_method_ids": [
              "PM-SRC-ECA8E1F8D9"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "grelha/chapa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar peito de frango com raspas/suco de limão, alho, tomilho e azeite autorizado."
              },
              {
                "order": 2,
                "instruction": "Temperar e colocar em chapa/grelha já quente."
              },
              {
                "order": 3,
                "instruction": "Grelhar dos dois lados até bem marcado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte: 4–5 min por lado para peito"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "exterior marcado; interior cozido e suculento"
            ],
            "adaptation_guardrails": [
              "Não adicionar acompanhamentos da fonte.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "tomate selado e omelete fina; grelha bem quente; exterior marcado",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A280B37386",
            "PM-SRC-ECA8E1F8D9"
          ]
        }
      }
    },
    "LEG-B14": {
      "id": "LEG-B14",
      "name": "Omelete de tomate e ervas + frango assado com alecrim e limão",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "tomate selado e omelete fina; assado; finalizar sob grill para dourar",
      "seasoning_text": "ervas frescas, pimenta; alecrim, limão, alho, pimenta",
      "seasoning_refs": [
        "T034",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-A280B37386",
        "SRC-D6E6893D01"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: ervas frescas, pimenta; alecrim, limão, alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.9,
        "best_rating_count": 31,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de tomate e ervas",
            "source_method_ids": [
              "PM-SRC-A280B37386"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira pequena antiaderente",
              "tigela",
              "colher de pau/espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Se tomate estiver autorizado, dourá-lo com o lado cortado para baixo até começar a amolecer e ganhar cor; reservar."
              },
              {
                "order": 2,
                "instruction": "Bater os ovos com as ervas e pimenta autorizadas."
              },
              {
                "order": 3,
                "instruction": "Adicionar os ovos à frigideira e mover delicadamente a parte que firma no fundo para permitir que ovo ainda líquido ocupe o espaço."
              },
              {
                "order": 4,
                "instruction": "Parar de mexer quando estiver quase cozido e deixar firmar em formato de omelete."
              }
            ],
            "source_time_reference": [
              "fonte: receita cozinha em ~5 min"
            ],
            "source_temperature_reference": [
              "fogo médio"
            ],
            "texture_or_doneness_endpoint": [
              "omelete recém-firme e macia"
            ],
            "adaptation_guardrails": [
              "Tomate entra somente quando constar da adaptação.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango assado com alecrim e limão",
            "source_method_ids": [
              "PM-SRC-D6E6893D01"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar alecrim, alho, limão e temperos autorizados com a gordura da porção."
              },
              {
                "order": 2,
                "instruction": "Cobrir o frango com essa mistura e assar até dourar."
              },
              {
                "order": 3,
                "instruction": "Descansar antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para frango inteiro: 1 h 10 min + 10 min de descanso"
            ],
            "source_temperature_reference": [
              "190°C / 170°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e cozido; repousado antes do corte"
            ],
            "adaptation_guardrails": [
              "A fonte é para ave inteira; para peito/cubos, usar somente o perfil aromático e técnica de assar, não o tempo de 1 h 10 min.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "tomate selado e omelete fina; assado; finalizar sob grill para dourar",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A280B37386",
            "PM-SRC-D6E6893D01"
          ]
        }
      }
    },
    "LEG-B15": {
      "id": "LEG-B15",
      "name": "Omelete de tomate e ervas + frango ao limão e orégano",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "tomate selado e omelete fina; assado ou grelhado em cubos",
      "seasoning_text": "ervas frescas, pimenta; limão, orégano, alho",
      "seasoning_refs": [
        "T034",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-A280B37386",
        "SRC-E54E273CF8"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: ervas frescas, pimenta; limão, orégano, alho — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 141,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de tomate e ervas",
            "source_method_ids": [
              "PM-SRC-A280B37386"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira pequena antiaderente",
              "tigela",
              "colher de pau/espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Se tomate estiver autorizado, dourá-lo com o lado cortado para baixo até começar a amolecer e ganhar cor; reservar."
              },
              {
                "order": 2,
                "instruction": "Bater os ovos com as ervas e pimenta autorizadas."
              },
              {
                "order": 3,
                "instruction": "Adicionar os ovos à frigideira e mover delicadamente a parte que firma no fundo para permitir que ovo ainda líquido ocupe o espaço."
              },
              {
                "order": 4,
                "instruction": "Parar de mexer quando estiver quase cozido e deixar firmar em formato de omelete."
              }
            ],
            "source_time_reference": [
              "fonte: receita cozinha em ~5 min"
            ],
            "source_temperature_reference": [
              "fogo médio"
            ],
            "texture_or_doneness_endpoint": [
              "omelete recém-firme e macia"
            ],
            "adaptation_guardrails": [
              "Tomate entra somente quando constar da adaptação.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango ao limão e orégano",
            "source_method_ids": [
              "PM-SRC-E54E273CF8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Temperar o frango com limão, orégano e a gordura prevista."
              },
              {
                "order": 2,
                "instruction": "Assar em assadeira quente, deixando espaço entre os pedaços para dourar."
              },
              {
                "order": 3,
                "instruction": "Virar/reorganizar se necessário e retirar quando dourado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte para coxas usa etapas de 20 min e total ~40 min após entrar o frango"
            ],
            "source_temperature_reference": [
              "220°C / 200°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A adaptação normalmente usa peito/cubos e remove batata, bacon, vinho e caldo; portanto o tempo da fonte não é transferível literalmente.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "tomate selado e omelete fina; assado ou grelhado em cubos",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A280B37386",
            "PM-SRC-E54E273CF8"
          ]
        }
      }
    },
    "LEG-B16": {
      "id": "LEG-B16",
      "name": "Omelete de tomate e ervas + frango souvlaki",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "tomate selado e omelete fina; cubos em espetos ou frigideira bem quente",
      "seasoning_text": "ervas frescas, pimenta; limão, alho, orégano",
      "seasoning_refs": [
        "T002",
        "T034",
        "T021"
      ],
      "source_ids": [
        "SRC-A280B37386",
        "SRC-48B8FB322E"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: ervas frescas, pimenta; limão, alho, orégano — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 230,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de tomate e ervas",
            "source_method_ids": [
              "PM-SRC-A280B37386"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira pequena antiaderente",
              "tigela",
              "colher de pau/espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Se tomate estiver autorizado, dourá-lo com o lado cortado para baixo até começar a amolecer e ganhar cor; reservar."
              },
              {
                "order": 2,
                "instruction": "Bater os ovos com as ervas e pimenta autorizadas."
              },
              {
                "order": 3,
                "instruction": "Adicionar os ovos à frigideira e mover delicadamente a parte que firma no fundo para permitir que ovo ainda líquido ocupe o espaço."
              },
              {
                "order": 4,
                "instruction": "Parar de mexer quando estiver quase cozido e deixar firmar em formato de omelete."
              }
            ],
            "source_time_reference": [
              "fonte: receita cozinha em ~5 min"
            ],
            "source_temperature_reference": [
              "fogo médio"
            ],
            "texture_or_doneness_endpoint": [
              "omelete recém-firme e macia"
            ],
            "adaptation_guardrails": [
              "Tomate entra somente quando constar da adaptação.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango souvlaki",
            "source_method_ids": [
              "PM-SRC-48B8FB322E"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "espetos ou frigideira/grelha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cortar o frango em pedaços uniformes e envolver com limão, alho, orégano/ervas e gordura autorizada."
              },
              {
                "order": 2,
                "instruction": "Marinar quando a ficha permitir."
              },
              {
                "order": 3,
                "instruction": "Grelhar em espetos ou em frigideira bem quente em camada única, virando para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir o molho de iogurte separadamente quando previsto."
              }
            ],
            "source_time_reference": [
              "fonte de família de barbecue/souvlaki; tempo varia com o corte"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "cubos/tiras bem dourados e cozidos"
            ],
            "adaptation_guardrails": [
              "Não usar pão, beterraba ou acompanhamentos da fonte que não constem na alternativa.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "tomate selado e omelete fina; cubos em espetos ou frigideira bem quente",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A280B37386",
            "PM-SRC-48B8FB322E"
          ]
        }
      }
    },
    "LEG-B17": {
      "id": "LEG-B17",
      "name": "Omelete de tomate em estilo panqueca + frango souvlaki",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "omelete fina tipo panqueca, molho rápido de tomate; cubos em espetos ou frigideira bem quente",
      "seasoning_text": "pimenta, ervas; limão, alho, orégano",
      "seasoning_refs": [
        "T002",
        "T034",
        "T021"
      ],
      "source_ids": [
        "SRC-306EB737D8",
        "SRC-48B8FB322E"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: pimenta, ervas; limão, alho, orégano — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 230,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023",
            "ING024"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de tomate em estilo panqueca",
            "source_method_ids": [
              "PM-SRC-306EB737D8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira grande para molho",
              "frigideira pequena antiaderente",
              "batedor",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar pimentão/alho autorizados e reduzir o molho de tomate; a fonte cozinha vegetais ~5 min e depois reduz o molho 10–15 min."
              },
              {
                "order": 2,
                "instruction": "Bater o ovo com os temperos autorizados e pequena quantidade de água quando desejado."
              },
              {
                "order": 3,
                "instruction": "Cozinhar cada lâmina de omelete em frigideira pequena com película mínima de gordura por cerca de 1–2 min, até firme."
              },
              {
                "order": 4,
                "instruction": "Enrolar e servir com apenas o molho autorizado, evitando encharcar."
              }
            ],
            "source_time_reference": [
              "fonte: molho 5 min + 10–15 min; omelete fina 1–2 min cada"
            ],
            "source_temperature_reference": [
              "fogo médio; fervura suave no molho"
            ],
            "texture_or_doneness_endpoint": [
              "molho espesso e omelete fina, firme e flexível"
            ],
            "adaptation_guardrails": [
              "Pimentão, tomate e demais componentes só entram se autorizados pela porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango souvlaki",
            "source_method_ids": [
              "PM-SRC-48B8FB322E"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "espetos ou frigideira/grelha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cortar o frango em pedaços uniformes e envolver com limão, alho, orégano/ervas e gordura autorizada."
              },
              {
                "order": 2,
                "instruction": "Marinar quando a ficha permitir."
              },
              {
                "order": 3,
                "instruction": "Grelhar em espetos ou em frigideira bem quente em camada única, virando para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir o molho de iogurte separadamente quando previsto."
              }
            ],
            "source_time_reference": [
              "fonte de família de barbecue/souvlaki; tempo varia com o corte"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "cubos/tiras bem dourados e cozidos"
            ],
            "adaptation_guardrails": [
              "Não usar pão, beterraba ou acompanhamentos da fonte que não constem na alternativa.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "omelete fina tipo panqueca, molho rápido de tomate; cubos em espetos ou frigideira bem quente",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-306EB737D8",
            "PM-SRC-48B8FB322E"
          ]
        }
      }
    },
    "LEG-B18": {
      "id": "LEG-B18",
      "name": "Omelete de tomate em estilo panqueca + frango ao iogurte e limão",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "omelete fina tipo panqueca, molho rápido de tomate; marinado no iogurte e grelhado",
      "seasoning_text": "pimenta, ervas; limão, alho, ervas",
      "seasoning_refs": [
        "T028",
        "T034",
        "T021"
      ],
      "source_ids": [
        "SRC-306EB737D8",
        "SRC-2F02D19B19"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: pimenta, ervas; limão, alho, ervas — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 14,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023",
            "ING024"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de tomate em estilo panqueca",
            "source_method_ids": [
              "PM-SRC-306EB737D8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira grande para molho",
              "frigideira pequena antiaderente",
              "batedor",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar pimentão/alho autorizados e reduzir o molho de tomate; a fonte cozinha vegetais ~5 min e depois reduz o molho 10–15 min."
              },
              {
                "order": 2,
                "instruction": "Bater o ovo com os temperos autorizados e pequena quantidade de água quando desejado."
              },
              {
                "order": 3,
                "instruction": "Cozinhar cada lâmina de omelete em frigideira pequena com película mínima de gordura por cerca de 1–2 min, até firme."
              },
              {
                "order": 4,
                "instruction": "Enrolar e servir com apenas o molho autorizado, evitando encharcar."
              }
            ],
            "source_time_reference": [
              "fonte: molho 5 min + 10–15 min; omelete fina 1–2 min cada"
            ],
            "source_temperature_reference": [
              "fogo médio; fervura suave no molho"
            ],
            "texture_or_doneness_endpoint": [
              "molho espesso e omelete fina, firme e flexível"
            ],
            "adaptation_guardrails": [
              "Pimentão, tomate e demais componentes só entram se autorizados pela porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango ao iogurte e limão",
            "source_method_ids": [
              "PM-SRC-2F02D19B19"
            ],
            "grounding_level": "existing_sourced_overview",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Aplicar esta característica operacional da ficha: omelete fina tipo panqueca, molho rápido de tomate."
              },
              {
                "order": 2,
                "instruction": "Executar a etapa de selagem/grelha descrita no overview da receita, buscando dourado sem ressecar."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "omelete fina tipo panqueca, molho rápido de tomate; marinado no iogurte e grelhado",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 1,
          "all_source_method_ids": [
            "PM-SRC-306EB737D8",
            "PM-SRC-2F02D19B19"
          ]
        }
      }
    },
    "LEG-B19": {
      "id": "LEG-B19",
      "name": "Omelete de tomate em estilo panqueca + paillard de frango com limão e ervas",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "omelete fina tipo panqueca, molho rápido de tomate; filé fino batido e grelhado rapidamente",
      "seasoning_text": "pimenta, ervas; limão, salsa, ervas",
      "seasoning_refs": [
        "T034",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-306EB737D8",
        "SRC-1A3490590C"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: pimenta, ervas; limão, salsa, ervas — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 43,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023",
            "ING024"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de tomate em estilo panqueca",
            "source_method_ids": [
              "PM-SRC-306EB737D8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira grande para molho",
              "frigideira pequena antiaderente",
              "batedor",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar pimentão/alho autorizados e reduzir o molho de tomate; a fonte cozinha vegetais ~5 min e depois reduz o molho 10–15 min."
              },
              {
                "order": 2,
                "instruction": "Bater o ovo com os temperos autorizados e pequena quantidade de água quando desejado."
              },
              {
                "order": 3,
                "instruction": "Cozinhar cada lâmina de omelete em frigideira pequena com película mínima de gordura por cerca de 1–2 min, até firme."
              },
              {
                "order": 4,
                "instruction": "Enrolar e servir com apenas o molho autorizado, evitando encharcar."
              }
            ],
            "source_time_reference": [
              "fonte: molho 5 min + 10–15 min; omelete fina 1–2 min cada"
            ],
            "source_temperature_reference": [
              "fogo médio; fervura suave no molho"
            ],
            "texture_or_doneness_endpoint": [
              "molho espesso e omelete fina, firme e flexível"
            ],
            "adaptation_guardrails": [
              "Pimentão, tomate e demais componentes só entram se autorizados pela porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "paillard de frango com limão e ervas",
            "source_method_ids": [
              "PM-SRC-1A3490590C"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "martelo de carne ou rolo",
              "papel manteiga/filme",
              "grelha/chapa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Achatar o peito entre folhas até espessura uniforme de aproximadamente 0,5 cm."
              },
              {
                "order": 2,
                "instruction": "Misturar alho, ervas, limão, azeite e temperos autorizados; cobrir o frango e marinar sob refrigeração."
              },
              {
                "order": 3,
                "instruction": "Grelhar rapidamente em superfície muito quente, virando uma vez."
              },
              {
                "order": 4,
                "instruction": "Descansar por alguns minutos antes de servir ou fatiar."
              }
            ],
            "source_time_reference": [
              "marinada ≥2 h; fonte: 1–2 min por lado para 0,5 cm"
            ],
            "source_temperature_reference": [
              "grelha/chapa muito quente"
            ],
            "texture_or_doneness_endpoint": [
              "marcas de grelha e centro cozido sem ressecar"
            ],
            "adaptation_guardrails": [
              "O tempo de 1–2 min/lado pressupõe a espessura fina da fonte.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "omelete fina tipo panqueca, molho rápido de tomate; filé fino batido e grelhado rapidamente",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-306EB737D8",
            "PM-SRC-1A3490590C"
          ]
        }
      }
    },
    "LEG-B20": {
      "id": "LEG-B20",
      "name": "Omelete de tomate em estilo panqueca + frango gyros",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "omelete fina tipo panqueca, molho rápido de tomate; tiras bem douradas, molho de iogurte à parte",
      "seasoning_text": "pimenta, ervas; orégano, alho, limão, páprica",
      "seasoning_refs": [
        "T002",
        "T028",
        "T034"
      ],
      "source_ids": [
        "SRC-306EB737D8",
        "SRC-E18543333B"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: pimenta, ervas; orégano, alho, limão, páprica — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 14,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023",
            "ING024"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de tomate em estilo panqueca",
            "source_method_ids": [
              "PM-SRC-306EB737D8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira grande para molho",
              "frigideira pequena antiaderente",
              "batedor",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar pimentão/alho autorizados e reduzir o molho de tomate; a fonte cozinha vegetais ~5 min e depois reduz o molho 10–15 min."
              },
              {
                "order": 2,
                "instruction": "Bater o ovo com os temperos autorizados e pequena quantidade de água quando desejado."
              },
              {
                "order": 3,
                "instruction": "Cozinhar cada lâmina de omelete em frigideira pequena com película mínima de gordura por cerca de 1–2 min, até firme."
              },
              {
                "order": 4,
                "instruction": "Enrolar e servir com apenas o molho autorizado, evitando encharcar."
              }
            ],
            "source_time_reference": [
              "fonte: molho 5 min + 10–15 min; omelete fina 1–2 min cada"
            ],
            "source_temperature_reference": [
              "fogo médio; fervura suave no molho"
            ],
            "texture_or_doneness_endpoint": [
              "molho espesso e omelete fina, firme e flexível"
            ],
            "adaptation_guardrails": [
              "Pimentão, tomate e demais componentes só entram se autorizados pela porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango gyros",
            "source_method_ids": [
              "PM-SRC-E18543333B"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "espetos ou frigideira/grelha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cortar o frango em pedaços uniformes e envolver com limão, alho, orégano/ervas e gordura autorizada."
              },
              {
                "order": 2,
                "instruction": "Marinar quando a ficha permitir."
              },
              {
                "order": 3,
                "instruction": "Grelhar em espetos ou em frigideira bem quente em camada única, virando para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir o molho de iogurte separadamente quando previsto."
              }
            ],
            "source_time_reference": [
              "fonte de família de barbecue/souvlaki; tempo varia com o corte"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "cubos/tiras bem dourados e cozidos"
            ],
            "adaptation_guardrails": [
              "Não usar pão, beterraba ou acompanhamentos da fonte que não constem na alternativa.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "omelete fina tipo panqueca, molho rápido de tomate; tiras bem douradas, molho de iogurte à parte",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-306EB737D8",
            "PM-SRC-E18543333B"
          ]
        }
      }
    },
    "LEG-B21": {
      "id": "LEG-B21",
      "name": "Frittata masala com salsa de abacate + frango jerk",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frittata assada; salsa fresca servida à parte; grelhado/assado; marinada intensa",
      "seasoning_text": "garam masala, coentro, limão; pimenta, tomilho, pimenta-da-jamaica, alho, gengibre",
      "seasoning_refs": [
        "T101",
        "T099",
        "T021"
      ],
      "source_ids": [
        "SRC-A3FD77E7A4",
        "SRC-BA7CAF57D8"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: garam masala, coentro, limão; pimenta, tomilho, pimenta-da-jamaica, alho, gengibre — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 70,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023",
            "ING024",
            "ING026"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frittata masala com salsa de abacate",
            "source_method_ids": [
              "PM-SRC-A3FD77E7A4"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente apta para grill",
              "batedor",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar a cebola lentamente e adicionar a pasta/especiarias masala por cerca de 1 min para liberar aroma."
              },
              {
                "order": 2,
                "instruction": "Adicionar tomate e pimenta autorizados e cozinhar até o tomate concentrar."
              },
              {
                "order": 3,
                "instruction": "Adicionar ovos batidos e ervas; cozinhar em fogo baixo até quase firmes."
              },
              {
                "order": 4,
                "instruction": "Finalizar sob grill alto até firmar e dourar levemente; servir a salsa/abacate à parte quando constar na porção."
              }
            ],
            "source_time_reference": [
              "cebola ~10 min; ovos 8–10 min; grill 3–5 min"
            ],
            "source_temperature_reference": [
              "fogo médio/baixo; grill alto"
            ],
            "texture_or_doneness_endpoint": [
              "frittata quase firme antes do grill e dourada no final"
            ],
            "adaptation_guardrails": [
              "Salsa/abacate só quando presentes na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango jerk",
            "source_method_ids": [
              "PM-SRC-BA7CAF57D8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador ou pilão",
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Processar/misturar os temperos jerk, alho, gengibre, tomilho, pimenta e limão/lima autorizados até formar pasta."
              },
              {
                "order": 2,
                "instruction": "Cobrir o frango uniformemente com a pasta."
              },
              {
                "order": 3,
                "instruction": "Assar ou grelhar até dourar e cozinhar por completo."
              }
            ],
            "source_time_reference": [
              "fonte para coxas com osso: 45–50 min"
            ],
            "source_temperature_reference": [
              "200°C / 180°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado, aromático e cozido"
            ],
            "adaptation_guardrails": [
              "Coconut cream e demais ingredientes da fonte só entram se constarem na adaptação; tempo da coxa não deve ser aplicado ao peito.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frittata assada; salsa fresca servida à parte; grelhado/assado; marinada intensa",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A3FD77E7A4",
            "PM-SRC-BA7CAF57D8"
          ]
        }
      }
    },
    "LEG-B22": {
      "id": "LEG-B22",
      "name": "Frittata masala com salsa de abacate + frango tikka",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frittata assada; salsa fresca servida à parte; cubos marinados e grelhados/espetados",
      "seasoning_text": "garam masala, coentro, limão; curry/garam masala, gengibre, alho, limão",
      "seasoning_refs": [
        "T099",
        "T021"
      ],
      "source_ids": [
        "SRC-A3FD77E7A4",
        "SRC-BF10506C58"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: garam masala, coentro, limão; curry/garam masala, gengibre, alho, limão — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 84,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023",
            "ING024",
            "ING026"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frittata masala com salsa de abacate",
            "source_method_ids": [
              "PM-SRC-A3FD77E7A4"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente apta para grill",
              "batedor",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar a cebola lentamente e adicionar a pasta/especiarias masala por cerca de 1 min para liberar aroma."
              },
              {
                "order": 2,
                "instruction": "Adicionar tomate e pimenta autorizados e cozinhar até o tomate concentrar."
              },
              {
                "order": 3,
                "instruction": "Adicionar ovos batidos e ervas; cozinhar em fogo baixo até quase firmes."
              },
              {
                "order": 4,
                "instruction": "Finalizar sob grill alto até firmar e dourar levemente; servir a salsa/abacate à parte quando constar na porção."
              }
            ],
            "source_time_reference": [
              "cebola ~10 min; ovos 8–10 min; grill 3–5 min"
            ],
            "source_temperature_reference": [
              "fogo médio/baixo; grill alto"
            ],
            "texture_or_doneness_endpoint": [
              "frittata quase firme antes do grill e dourada no final"
            ],
            "adaptation_guardrails": [
              "Salsa/abacate só quando presentes na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango tikka",
            "source_method_ids": [
              "PM-SRC-BF10506C58"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "espetos",
              "grill/forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte e pasta/especiarias tikka autorizadas; envolver os cubos de frango."
              },
              {
                "order": 2,
                "instruction": "Marinar por cerca de 1 h quando possível."
              },
              {
                "order": 3,
                "instruction": "Retirar excesso de marinada, colocar nos espetos e grelhar, virando periodicamente."
              },
              {
                "order": 4,
                "instruction": "Retirar quando bem dourado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte: 15–20 min sob grill médio; marinada opcional ~1 h"
            ],
            "source_temperature_reference": [
              "grill médio"
            ],
            "texture_or_doneness_endpoint": [
              "bordas douradas e centro cozido"
            ],
            "adaptation_guardrails": [
              "Usar iogurte zero lactose; tomate/chapati/salada da fonte não entram salvo se listados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frittata assada; salsa fresca servida à parte; cubos marinados e grelhados/espetados",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A3FD77E7A4",
            "PM-SRC-BF10506C58"
          ]
        }
      }
    },
    "LEG-B23": {
      "id": "LEG-B23",
      "name": "Frittata masala com salsa de abacate + frango com limão e five-spice",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frittata assada; salsa fresca servida à parte; tiras salteadas rapidamente",
      "seasoning_text": "garam masala, coentro, limão; five-spice, limão, alho",
      "seasoning_refs": [
        "T099",
        "T021"
      ],
      "source_ids": [
        "SRC-A3FD77E7A4",
        "SRC-025FA125E0"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: garam masala, coentro, limão; five-spice, limão, alho — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 70,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023",
            "ING024",
            "ING026"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frittata masala com salsa de abacate",
            "source_method_ids": [
              "PM-SRC-A3FD77E7A4"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente apta para grill",
              "batedor",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar a cebola lentamente e adicionar a pasta/especiarias masala por cerca de 1 min para liberar aroma."
              },
              {
                "order": 2,
                "instruction": "Adicionar tomate e pimenta autorizados e cozinhar até o tomate concentrar."
              },
              {
                "order": 3,
                "instruction": "Adicionar ovos batidos e ervas; cozinhar em fogo baixo até quase firmes."
              },
              {
                "order": 4,
                "instruction": "Finalizar sob grill alto até firmar e dourar levemente; servir a salsa/abacate à parte quando constar na porção."
              }
            ],
            "source_time_reference": [
              "cebola ~10 min; ovos 8–10 min; grill 3–5 min"
            ],
            "source_temperature_reference": [
              "fogo médio/baixo; grill alto"
            ],
            "texture_or_doneness_endpoint": [
              "frittata quase firme antes do grill e dourada no final"
            ],
            "adaptation_guardrails": [
              "Salsa/abacate só quando presentes na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango com limão e five-spice",
            "source_method_ids": [
              "PM-SRC-025FA125E0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "saco/tigela de marinada",
              "grelha ou barbecue"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar limão, gengibre, alho, five-spice e demais temperos autorizados; envolver o frango."
              },
              {
                "order": 2,
                "instruction": "Marinar por pelo menos 10 min; a fonte permite até 24 h."
              },
              {
                "order": 3,
                "instruction": "Retirar excesso de marinada e grelhar, virando ocasionalmente, até escurecer/dourar e cozinhar por completo."
              }
            ],
            "source_time_reference": [
              "fonte: ~20 min para coxas; marinada 10 min–24 h"
            ],
            "source_temperature_reference": [
              "grill alto/BBQ; controlar para não queimar"
            ],
            "texture_or_doneness_endpoint": [
              "escuro/dourado por fora e cozido"
            ],
            "adaptation_guardrails": [
              "Açúcar, sherry e molho de soja só entram se estiverem autorizados; para peito, reduzir tempo conforme espessura.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frittata assada; salsa fresca servida à parte; tiras salteadas rapidamente",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A3FD77E7A4",
            "PM-SRC-025FA125E0"
          ]
        }
      }
    },
    "LEG-B24": {
      "id": "LEG-B24",
      "name": "Frittata masala com salsa de abacate + frango curry caseiro",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frittata assada; salsa fresca servida à parte; cubos em molho curto e espesso",
      "seasoning_text": "garam masala, coentro, limão; curry, cominho, coentro, gengibre, alho",
      "seasoning_refs": [
        "T099",
        "T021"
      ],
      "source_ids": [
        "SRC-A3FD77E7A4",
        "SRC-5F81012DF2"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: garam masala, coentro, limão; curry, cominho, coentro, gengibre, alho — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 70,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023",
            "ING024",
            "ING026"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frittata masala com salsa de abacate",
            "source_method_ids": [
              "PM-SRC-A3FD77E7A4"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente apta para grill",
              "batedor",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar a cebola lentamente e adicionar a pasta/especiarias masala por cerca de 1 min para liberar aroma."
              },
              {
                "order": 2,
                "instruction": "Adicionar tomate e pimenta autorizados e cozinhar até o tomate concentrar."
              },
              {
                "order": 3,
                "instruction": "Adicionar ovos batidos e ervas; cozinhar em fogo baixo até quase firmes."
              },
              {
                "order": 4,
                "instruction": "Finalizar sob grill alto até firmar e dourar levemente; servir a salsa/abacate à parte quando constar na porção."
              }
            ],
            "source_time_reference": [
              "cebola ~10 min; ovos 8–10 min; grill 3–5 min"
            ],
            "source_temperature_reference": [
              "fogo médio/baixo; grill alto"
            ],
            "texture_or_doneness_endpoint": [
              "frittata quase firme antes do grill e dourada no final"
            ],
            "adaptation_guardrails": [
              "Salsa/abacate só quando presentes na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango curry caseiro",
            "source_method_ids": [
              "PM-SRC-5F81012DF2"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira/panela larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar cebola e aromáticos; adicionar alho/gengibre e cozinhar brevemente."
              },
              {
                "order": 2,
                "instruction": "Adicionar o frango e dourar os cubos."
              },
              {
                "order": 3,
                "instruction": "Adicionar especiarias/pasta e os componentes de molho autorizados; cozinhar em fervura suave até o molho reduzir e aderir."
              },
              {
                "order": 4,
                "instruction": "Quando houver iogurte na adaptação, incorporar no final e evitar fervura forte."
              }
            ],
            "source_time_reference": [
              "fonte: cebola 8–10 min; aromáticos ~1 min; frango ~5 min antes do molho; molho 25–30 min"
            ],
            "source_temperature_reference": [
              "médio → fervura suave"
            ],
            "texture_or_doneness_endpoint": [
              "frango cozido e molho concentrado"
            ],
            "adaptation_guardrails": [
              "A versão “curry seco” pode omitir tomate/água/iogurte; nesse caso parar quando especiarias estiverem aderidas ao frango.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frittata assada; salsa fresca servida à parte; cubos em molho curto e espesso",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A3FD77E7A4",
            "PM-SRC-5F81012DF2"
          ]
        }
      }
    },
    "LEG-B25": {
      "id": "LEG-B25",
      "name": "Frittata de tomate e queijo + frango assado com alecrim e limão",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frittata assada; ricota original trocada por muçarela zero lactose; assado; finalizar sob grill para dourar",
      "seasoning_text": "ervas, pimenta; alecrim, limão, alho, pimenta",
      "seasoning_refs": [
        "T034",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-4B593C7FA1",
        "SRC-D6E6893D01"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: ervas, pimenta; alecrim, limão, alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.9,
        "best_rating_count": 31,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frittata de tomate e queijo",
            "source_method_ids": [
              "PM-SRC-4B593C7FA1"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira",
              "forma/recipiente de forno",
              "batedor"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar a cebola; adicionar tomate e cozinhar brevemente; murchar folhas/ervas quando previstas."
              },
              {
                "order": 2,
                "instruction": "Transferir para recipiente untado, distribuir o queijo autorizado e cobrir com ovos batidos."
              },
              {
                "order": 3,
                "instruction": "Assar até firme e levemente dourada."
              }
            ],
            "source_time_reference": [
              "forno 20–25 min na fonte"
            ],
            "source_temperature_reference": [
              "200°C / 180°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "centro firme e superfície levemente dourada"
            ],
            "adaptation_guardrails": [
              "Ricota pode ser substituída por muçarela zero lactose conforme ficha; não reintroduzir espinafre se não estiver na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango assado com alecrim e limão",
            "source_method_ids": [
              "PM-SRC-D6E6893D01"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar alecrim, alho, limão e temperos autorizados com a gordura da porção."
              },
              {
                "order": 2,
                "instruction": "Cobrir o frango com essa mistura e assar até dourar."
              },
              {
                "order": 3,
                "instruction": "Descansar antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para frango inteiro: 1 h 10 min + 10 min de descanso"
            ],
            "source_temperature_reference": [
              "190°C / 170°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e cozido; repousado antes do corte"
            ],
            "adaptation_guardrails": [
              "A fonte é para ave inteira; para peito/cubos, usar somente o perfil aromático e técnica de assar, não o tempo de 1 h 10 min.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frittata assada; ricota original trocada por muçarela zero lactose; assado; finalizar sob grill para dourar",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-4B593C7FA1",
            "PM-SRC-D6E6893D01"
          ]
        }
      }
    },
    "LEG-B26": {
      "id": "LEG-B26",
      "name": "Frittata de tomate e queijo + frango ao limão e orégano",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frittata assada; ricota original trocada por muçarela zero lactose; assado ou grelhado em cubos",
      "seasoning_text": "ervas, pimenta; limão, orégano, alho",
      "seasoning_refs": [
        "T034",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-4B593C7FA1",
        "SRC-E54E273CF8"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: ervas, pimenta; limão, orégano, alho — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 141,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frittata de tomate e queijo",
            "source_method_ids": [
              "PM-SRC-4B593C7FA1"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira",
              "forma/recipiente de forno",
              "batedor"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar a cebola; adicionar tomate e cozinhar brevemente; murchar folhas/ervas quando previstas."
              },
              {
                "order": 2,
                "instruction": "Transferir para recipiente untado, distribuir o queijo autorizado e cobrir com ovos batidos."
              },
              {
                "order": 3,
                "instruction": "Assar até firme e levemente dourada."
              }
            ],
            "source_time_reference": [
              "forno 20–25 min na fonte"
            ],
            "source_temperature_reference": [
              "200°C / 180°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "centro firme e superfície levemente dourada"
            ],
            "adaptation_guardrails": [
              "Ricota pode ser substituída por muçarela zero lactose conforme ficha; não reintroduzir espinafre se não estiver na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango ao limão e orégano",
            "source_method_ids": [
              "PM-SRC-E54E273CF8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Temperar o frango com limão, orégano e a gordura prevista."
              },
              {
                "order": 2,
                "instruction": "Assar em assadeira quente, deixando espaço entre os pedaços para dourar."
              },
              {
                "order": 3,
                "instruction": "Virar/reorganizar se necessário e retirar quando dourado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte para coxas usa etapas de 20 min e total ~40 min após entrar o frango"
            ],
            "source_temperature_reference": [
              "220°C / 200°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A adaptação normalmente usa peito/cubos e remove batata, bacon, vinho e caldo; portanto o tempo da fonte não é transferível literalmente.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frittata assada; ricota original trocada por muçarela zero lactose; assado ou grelhado em cubos",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-4B593C7FA1",
            "PM-SRC-E54E273CF8"
          ]
        }
      }
    },
    "LEG-B27": {
      "id": "LEG-B27",
      "name": "Frittata de tomate e queijo + frango souvlaki",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frittata assada; ricota original trocada por muçarela zero lactose; cubos em espetos ou frigideira bem quente",
      "seasoning_text": "ervas, pimenta; limão, alho, orégano",
      "seasoning_refs": [
        "T002",
        "T034",
        "T021"
      ],
      "source_ids": [
        "SRC-4B593C7FA1",
        "SRC-48B8FB322E"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: ervas, pimenta; limão, alho, orégano — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 230,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frittata de tomate e queijo",
            "source_method_ids": [
              "PM-SRC-4B593C7FA1"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira",
              "forma/recipiente de forno",
              "batedor"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar a cebola; adicionar tomate e cozinhar brevemente; murchar folhas/ervas quando previstas."
              },
              {
                "order": 2,
                "instruction": "Transferir para recipiente untado, distribuir o queijo autorizado e cobrir com ovos batidos."
              },
              {
                "order": 3,
                "instruction": "Assar até firme e levemente dourada."
              }
            ],
            "source_time_reference": [
              "forno 20–25 min na fonte"
            ],
            "source_temperature_reference": [
              "200°C / 180°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "centro firme e superfície levemente dourada"
            ],
            "adaptation_guardrails": [
              "Ricota pode ser substituída por muçarela zero lactose conforme ficha; não reintroduzir espinafre se não estiver na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango souvlaki",
            "source_method_ids": [
              "PM-SRC-48B8FB322E"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "espetos ou frigideira/grelha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cortar o frango em pedaços uniformes e envolver com limão, alho, orégano/ervas e gordura autorizada."
              },
              {
                "order": 2,
                "instruction": "Marinar quando a ficha permitir."
              },
              {
                "order": 3,
                "instruction": "Grelhar em espetos ou em frigideira bem quente em camada única, virando para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir o molho de iogurte separadamente quando previsto."
              }
            ],
            "source_time_reference": [
              "fonte de família de barbecue/souvlaki; tempo varia com o corte"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "cubos/tiras bem dourados e cozidos"
            ],
            "adaptation_guardrails": [
              "Não usar pão, beterraba ou acompanhamentos da fonte que não constem na alternativa.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frittata assada; ricota original trocada por muçarela zero lactose; cubos em espetos ou frigideira bem quente",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-4B593C7FA1",
            "PM-SRC-48B8FB322E"
          ]
        }
      }
    },
    "LEG-B28": {
      "id": "LEG-B28",
      "name": "Frittata de tomate e queijo + frango ao iogurte e limão",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frittata assada; ricota original trocada por muçarela zero lactose; marinado no iogurte e grelhado",
      "seasoning_text": "ervas, pimenta; limão, alho, ervas",
      "seasoning_refs": [
        "T028",
        "T034",
        "T021"
      ],
      "source_ids": [
        "SRC-4B593C7FA1",
        "SRC-2F02D19B19"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: ervas, pimenta; limão, alho, ervas — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.5,
        "best_rating_count": 34,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frittata de tomate e queijo",
            "source_method_ids": [
              "PM-SRC-4B593C7FA1"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira",
              "forma/recipiente de forno",
              "batedor"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar a cebola; adicionar tomate e cozinhar brevemente; murchar folhas/ervas quando previstas."
              },
              {
                "order": 2,
                "instruction": "Transferir para recipiente untado, distribuir o queijo autorizado e cobrir com ovos batidos."
              },
              {
                "order": 3,
                "instruction": "Assar até firme e levemente dourada."
              }
            ],
            "source_time_reference": [
              "forno 20–25 min na fonte"
            ],
            "source_temperature_reference": [
              "200°C / 180°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "centro firme e superfície levemente dourada"
            ],
            "adaptation_guardrails": [
              "Ricota pode ser substituída por muçarela zero lactose conforme ficha; não reintroduzir espinafre se não estiver na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango ao iogurte e limão",
            "source_method_ids": [
              "PM-SRC-2F02D19B19"
            ],
            "grounding_level": "existing_sourced_overview",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Executar a etapa de forno/air fryer descrita no overview, usando o dourado e a textura como endpoint."
              },
              {
                "order": 2,
                "instruction": "Aplicar esta característica operacional da ficha: ricota original trocada por muçarela zero lactose."
              },
              {
                "order": 3,
                "instruction": "Executar a etapa de selagem/grelha descrita no overview da receita, buscando dourado sem ressecar."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frittata assada; ricota original trocada por muçarela zero lactose; marinado no iogurte e grelhado",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 1,
          "all_source_method_ids": [
            "PM-SRC-4B593C7FA1",
            "PM-SRC-2F02D19B19"
          ]
        }
      }
    },
    "LEG-B29": {
      "id": "LEG-B29",
      "name": "Frittata de queijo + frango assado com alecrim e limão",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "forno ou air fryer; centro firme e bordas douradas; assado; finalizar sob grill para dourar",
      "seasoning_text": "cebolinha, pimenta; alecrim, limão, alho, pimenta",
      "seasoning_refs": [
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-DB8D4382D5",
        "SRC-D6E6893D01"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: cebolinha, pimenta; alecrim, limão, alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.9,
        "best_rating_count": 31,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frittata de queijo",
            "source_method_ids": [
              "PM-SRC-DB8D4382D5"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "batedor",
              "recipiente redondo de forno (~16 cm na fonte)",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Preparar apenas os recheios autorizados e distribuir no recipiente de forno."
              },
              {
                "order": 2,
                "instruction": "Bater os ovos e misturar aos componentes autorizados."
              },
              {
                "order": 3,
                "instruction": "Untar usando apenas a gordura prevista na alternativa e transferir para o recipiente."
              },
              {
                "order": 4,
                "instruction": "Assar até o ovo estar completamente firme; a fonte usa 180°C/160°C ventilado por cerca de 30 min."
              }
            ],
            "source_time_reference": [
              "fonte: ~30 min"
            ],
            "source_temperature_reference": [
              "180°C / 160°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "centro totalmente firme"
            ],
            "adaptation_guardrails": [
              "A fonte contém courgette/abobrinha; ela é explicitamente proibida nesta adaptação. Preservar apenas a técnica de frittata assada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango assado com alecrim e limão",
            "source_method_ids": [
              "PM-SRC-D6E6893D01"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar alecrim, alho, limão e temperos autorizados com a gordura da porção."
              },
              {
                "order": 2,
                "instruction": "Cobrir o frango com essa mistura e assar até dourar."
              },
              {
                "order": 3,
                "instruction": "Descansar antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para frango inteiro: 1 h 10 min + 10 min de descanso"
            ],
            "source_temperature_reference": [
              "190°C / 170°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e cozido; repousado antes do corte"
            ],
            "adaptation_guardrails": [
              "A fonte é para ave inteira; para peito/cubos, usar somente o perfil aromático e técnica de assar, não o tempo de 1 h 10 min.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "forno ou air fryer; centro firme e bordas douradas; assado; finalizar sob grill para dourar",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-DB8D4382D5",
            "PM-SRC-D6E6893D01"
          ]
        }
      }
    },
    "LEG-B30": {
      "id": "LEG-B30",
      "name": "Frittata de queijo + frango churrasco de limão e alho",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "forno ou air fryer; centro firme e bordas douradas; grelhado/chapado em tiras",
      "seasoning_text": "cebolinha, pimenta; limão, alho, páprica, pimenta",
      "seasoning_refs": [
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-DB8D4382D5",
        "SRC-EC9CFA9DDA"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: cebolinha, pimenta; limão, alho, páprica, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.9,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frittata de queijo",
            "source_method_ids": [
              "PM-SRC-DB8D4382D5"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "batedor",
              "recipiente redondo de forno (~16 cm na fonte)",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Preparar apenas os recheios autorizados e distribuir no recipiente de forno."
              },
              {
                "order": 2,
                "instruction": "Bater os ovos e misturar aos componentes autorizados."
              },
              {
                "order": 3,
                "instruction": "Untar usando apenas a gordura prevista na alternativa e transferir para o recipiente."
              },
              {
                "order": 4,
                "instruction": "Assar até o ovo estar completamente firme; a fonte usa 180°C/160°C ventilado por cerca de 30 min."
              }
            ],
            "source_time_reference": [
              "fonte: ~30 min"
            ],
            "source_temperature_reference": [
              "180°C / 160°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "centro totalmente firme"
            ],
            "adaptation_guardrails": [
              "A fonte contém courgette/abobrinha; ela é explicitamente proibida nesta adaptação. Preservar apenas a técnica de frittata assada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango churrasco de limão e alho",
            "source_method_ids": [
              "PM-SRC-EC9CFA9DDA"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela não metálica",
              "grelha/chapa ou grill",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro."
              },
              {
                "order": 3,
                "instruction": "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada."
              },
              {
                "order": 4,
                "instruction": "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h"
            ],
            "source_temperature_reference": [
              "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido"
            ],
            "texture_or_doneness_endpoint": [
              "bem dourado por fora e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
              "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "forno ou air fryer; centro firme e bordas douradas; grelhado/chapado em tiras",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-DB8D4382D5",
            "PM-SRC-EC9CFA9DDA"
          ]
        }
      }
    },
    "LEG-B31": {
      "id": "LEG-B31",
      "name": "Frittata de queijo + frango ao limão e tomilho",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "forno ou air fryer; centro firme e bordas douradas; grelha bem quente; exterior marcado",
      "seasoning_text": "cebolinha, pimenta; limão, tomilho, pimenta",
      "seasoning_refs": [
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-DB8D4382D5",
        "SRC-ECA8E1F8D9"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: cebolinha, pimenta; limão, tomilho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.5,
        "best_rating_count": 21,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frittata de queijo",
            "source_method_ids": [
              "PM-SRC-DB8D4382D5"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "batedor",
              "recipiente redondo de forno (~16 cm na fonte)",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Preparar apenas os recheios autorizados e distribuir no recipiente de forno."
              },
              {
                "order": 2,
                "instruction": "Bater os ovos e misturar aos componentes autorizados."
              },
              {
                "order": 3,
                "instruction": "Untar usando apenas a gordura prevista na alternativa e transferir para o recipiente."
              },
              {
                "order": 4,
                "instruction": "Assar até o ovo estar completamente firme; a fonte usa 180°C/160°C ventilado por cerca de 30 min."
              }
            ],
            "source_time_reference": [
              "fonte: ~30 min"
            ],
            "source_temperature_reference": [
              "180°C / 160°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "centro totalmente firme"
            ],
            "adaptation_guardrails": [
              "A fonte contém courgette/abobrinha; ela é explicitamente proibida nesta adaptação. Preservar apenas a técnica de frittata assada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango ao limão e tomilho",
            "source_method_ids": [
              "PM-SRC-ECA8E1F8D9"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "grelha/chapa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar peito de frango com raspas/suco de limão, alho, tomilho e azeite autorizado."
              },
              {
                "order": 2,
                "instruction": "Temperar e colocar em chapa/grelha já quente."
              },
              {
                "order": 3,
                "instruction": "Grelhar dos dois lados até bem marcado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte: 4–5 min por lado para peito"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "exterior marcado; interior cozido e suculento"
            ],
            "adaptation_guardrails": [
              "Não adicionar acompanhamentos da fonte.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "forno ou air fryer; centro firme e bordas douradas; grelha bem quente; exterior marcado",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-DB8D4382D5",
            "PM-SRC-ECA8E1F8D9"
          ]
        }
      }
    },
    "LEG-B32": {
      "id": "LEG-B32",
      "name": "Frittata de queijo + frango jerk",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "forno ou air fryer; centro firme e bordas douradas; grelhado/assado; marinada intensa",
      "seasoning_text": "cebolinha, pimenta; pimenta, tomilho, pimenta-da-jamaica, alho, gengibre",
      "seasoning_refs": [
        "T101",
        "T098"
      ],
      "source_ids": [
        "SRC-DB8D4382D5",
        "SRC-BA7CAF57D8"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: cebolinha, pimenta; pimenta, tomilho, pimenta-da-jamaica, alho, gengibre — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.5,
        "best_rating_count": 21,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frittata de queijo",
            "source_method_ids": [
              "PM-SRC-DB8D4382D5"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "batedor",
              "recipiente redondo de forno (~16 cm na fonte)",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Preparar apenas os recheios autorizados e distribuir no recipiente de forno."
              },
              {
                "order": 2,
                "instruction": "Bater os ovos e misturar aos componentes autorizados."
              },
              {
                "order": 3,
                "instruction": "Untar usando apenas a gordura prevista na alternativa e transferir para o recipiente."
              },
              {
                "order": 4,
                "instruction": "Assar até o ovo estar completamente firme; a fonte usa 180°C/160°C ventilado por cerca de 30 min."
              }
            ],
            "source_time_reference": [
              "fonte: ~30 min"
            ],
            "source_temperature_reference": [
              "180°C / 160°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "centro totalmente firme"
            ],
            "adaptation_guardrails": [
              "A fonte contém courgette/abobrinha; ela é explicitamente proibida nesta adaptação. Preservar apenas a técnica de frittata assada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango jerk",
            "source_method_ids": [
              "PM-SRC-BA7CAF57D8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador ou pilão",
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Processar/misturar os temperos jerk, alho, gengibre, tomilho, pimenta e limão/lima autorizados até formar pasta."
              },
              {
                "order": 2,
                "instruction": "Cobrir o frango uniformemente com a pasta."
              },
              {
                "order": 3,
                "instruction": "Assar ou grelhar até dourar e cozinhar por completo."
              }
            ],
            "source_time_reference": [
              "fonte para coxas com osso: 45–50 min"
            ],
            "source_temperature_reference": [
              "200°C / 180°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado, aromático e cozido"
            ],
            "adaptation_guardrails": [
              "Coconut cream e demais ingredientes da fonte só entram se constarem na adaptação; tempo da coxa não deve ser aplicado ao peito.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "forno ou air fryer; centro firme e bordas douradas; grelhado/assado; marinada intensa",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-DB8D4382D5",
            "PM-SRC-BA7CAF57D8"
          ]
        }
      }
    },
    "LEG-B33": {
      "id": "LEG-B33",
      "name": "Frittata estilo lorraine com frango + frango com limão e five-spice",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frittata assada; frango substitui bacon; tiras salteadas rapidamente",
      "seasoning_text": "noz-moscada, pimenta; five-spice, limão, alho",
      "seasoning_refs": [
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-F0896CC580",
        "SRC-025FA125E0"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: noz-moscada, pimenta; five-spice, limão, alho — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 42,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING024"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frittata estilo lorraine com frango",
            "source_method_ids": [
              "PM-SRC-F0896CC580"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "forma/ramequim",
              "batedor",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater os ovos e incorporar os componentes autorizados da versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Distribuir o queijo e proteína previstos de modo uniforme na forma."
              },
              {
                "order": 3,
                "instruction": "Assar até o centro ficar firme e a superfície dourada."
              }
            ],
            "source_time_reference": [
              "30–35 min na fonte"
            ],
            "source_temperature_reference": [
              "180°C / 160°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourada e completamente firme"
            ],
            "adaptation_guardrails": [
              "Na adaptação, frango pode substituir bacon/presunto; não adicionar leite/creme se não constar na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango com limão e five-spice",
            "source_method_ids": [
              "PM-SRC-025FA125E0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "saco/tigela de marinada",
              "grelha ou barbecue"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar limão, gengibre, alho, five-spice e demais temperos autorizados; envolver o frango."
              },
              {
                "order": 2,
                "instruction": "Marinar por pelo menos 10 min; a fonte permite até 24 h."
              },
              {
                "order": 3,
                "instruction": "Retirar excesso de marinada e grelhar, virando ocasionalmente, até escurecer/dourar e cozinhar por completo."
              }
            ],
            "source_time_reference": [
              "fonte: ~20 min para coxas; marinada 10 min–24 h"
            ],
            "source_temperature_reference": [
              "grill alto/BBQ; controlar para não queimar"
            ],
            "texture_or_doneness_endpoint": [
              "escuro/dourado por fora e cozido"
            ],
            "adaptation_guardrails": [
              "Açúcar, sherry e molho de soja só entram se estiverem autorizados; para peito, reduzir tempo conforme espessura.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frittata assada; frango substitui bacon; tiras salteadas rapidamente",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-F0896CC580",
            "PM-SRC-025FA125E0"
          ]
        }
      }
    },
    "LEG-B34": {
      "id": "LEG-B34",
      "name": "Frittata estilo lorraine com frango + frango ao limão e orégano",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frittata assada; frango substitui bacon; assado ou grelhado em cubos",
      "seasoning_text": "noz-moscada, pimenta; limão, orégano, alho",
      "seasoning_refs": [
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-F0896CC580",
        "SRC-E54E273CF8"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: noz-moscada, pimenta; limão, orégano, alho — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 42,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING024"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frittata estilo lorraine com frango",
            "source_method_ids": [
              "PM-SRC-F0896CC580"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "forma/ramequim",
              "batedor",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater os ovos e incorporar os componentes autorizados da versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Distribuir o queijo e proteína previstos de modo uniforme na forma."
              },
              {
                "order": 3,
                "instruction": "Assar até o centro ficar firme e a superfície dourada."
              }
            ],
            "source_time_reference": [
              "30–35 min na fonte"
            ],
            "source_temperature_reference": [
              "180°C / 160°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourada e completamente firme"
            ],
            "adaptation_guardrails": [
              "Na adaptação, frango pode substituir bacon/presunto; não adicionar leite/creme se não constar na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango ao limão e orégano",
            "source_method_ids": [
              "PM-SRC-E54E273CF8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Temperar o frango com limão, orégano e a gordura prevista."
              },
              {
                "order": 2,
                "instruction": "Assar em assadeira quente, deixando espaço entre os pedaços para dourar."
              },
              {
                "order": 3,
                "instruction": "Virar/reorganizar se necessário e retirar quando dourado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte para coxas usa etapas de 20 min e total ~40 min após entrar o frango"
            ],
            "source_temperature_reference": [
              "220°C / 200°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A adaptação normalmente usa peito/cubos e remove batata, bacon, vinho e caldo; portanto o tempo da fonte não é transferível literalmente.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frittata assada; frango substitui bacon; assado ou grelhado em cubos",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-F0896CC580",
            "PM-SRC-E54E273CF8"
          ]
        }
      }
    },
    "LEG-B35": {
      "id": "LEG-B35",
      "name": "Frittata estilo lorraine com frango + frango souvlaki",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frittata assada; frango substitui bacon; cubos em espetos ou frigideira bem quente",
      "seasoning_text": "noz-moscada, pimenta; limão, alho, orégano",
      "seasoning_refs": [
        "T002",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-F0896CC580",
        "SRC-48B8FB322E"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: noz-moscada, pimenta; limão, alho, orégano — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 230,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING024"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frittata estilo lorraine com frango",
            "source_method_ids": [
              "PM-SRC-F0896CC580"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "forma/ramequim",
              "batedor",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater os ovos e incorporar os componentes autorizados da versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Distribuir o queijo e proteína previstos de modo uniforme na forma."
              },
              {
                "order": 3,
                "instruction": "Assar até o centro ficar firme e a superfície dourada."
              }
            ],
            "source_time_reference": [
              "30–35 min na fonte"
            ],
            "source_temperature_reference": [
              "180°C / 160°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourada e completamente firme"
            ],
            "adaptation_guardrails": [
              "Na adaptação, frango pode substituir bacon/presunto; não adicionar leite/creme se não constar na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango souvlaki",
            "source_method_ids": [
              "PM-SRC-48B8FB322E"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "espetos ou frigideira/grelha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cortar o frango em pedaços uniformes e envolver com limão, alho, orégano/ervas e gordura autorizada."
              },
              {
                "order": 2,
                "instruction": "Marinar quando a ficha permitir."
              },
              {
                "order": 3,
                "instruction": "Grelhar em espetos ou em frigideira bem quente em camada única, virando para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir o molho de iogurte separadamente quando previsto."
              }
            ],
            "source_time_reference": [
              "fonte de família de barbecue/souvlaki; tempo varia com o corte"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "cubos/tiras bem dourados e cozidos"
            ],
            "adaptation_guardrails": [
              "Não usar pão, beterraba ou acompanhamentos da fonte que não constem na alternativa.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frittata assada; frango substitui bacon; cubos em espetos ou frigideira bem quente",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-F0896CC580",
            "PM-SRC-48B8FB322E"
          ]
        }
      }
    },
    "LEG-B36": {
      "id": "LEG-B36",
      "name": "Frittata estilo lorraine com frango + frango assado com alecrim e limão",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frittata assada; frango substitui bacon; assado; finalizar sob grill para dourar",
      "seasoning_text": "noz-moscada, pimenta; alecrim, limão, alho, pimenta",
      "seasoning_refs": [
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-F0896CC580",
        "SRC-D6E6893D01"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: noz-moscada, pimenta; alecrim, limão, alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.9,
        "best_rating_count": 31,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING024"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frittata estilo lorraine com frango",
            "source_method_ids": [
              "PM-SRC-F0896CC580"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "forma/ramequim",
              "batedor",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater os ovos e incorporar os componentes autorizados da versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Distribuir o queijo e proteína previstos de modo uniforme na forma."
              },
              {
                "order": 3,
                "instruction": "Assar até o centro ficar firme e a superfície dourada."
              }
            ],
            "source_time_reference": [
              "30–35 min na fonte"
            ],
            "source_temperature_reference": [
              "180°C / 160°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourada e completamente firme"
            ],
            "adaptation_guardrails": [
              "Na adaptação, frango pode substituir bacon/presunto; não adicionar leite/creme se não constar na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango assado com alecrim e limão",
            "source_method_ids": [
              "PM-SRC-D6E6893D01"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar alecrim, alho, limão e temperos autorizados com a gordura da porção."
              },
              {
                "order": 2,
                "instruction": "Cobrir o frango com essa mistura e assar até dourar."
              },
              {
                "order": 3,
                "instruction": "Descansar antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para frango inteiro: 1 h 10 min + 10 min de descanso"
            ],
            "source_temperature_reference": [
              "190°C / 170°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e cozido; repousado antes do corte"
            ],
            "adaptation_guardrails": [
              "A fonte é para ave inteira; para peito/cubos, usar somente o perfil aromático e técnica de assar, não o tempo de 1 h 10 min.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frittata assada; frango substitui bacon; assado; finalizar sob grill para dourar",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-F0896CC580",
            "PM-SRC-D6E6893D01"
          ]
        }
      }
    },
    "LEG-B37": {
      "id": "LEG-B37",
      "name": "Omelete de abóbora e chilli + frango tikka",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "abóbora pré-cozida; omelete dobrada; cubos marinados e grelhados/espetados",
      "seasoning_text": "chilli, coentro ou salsinha; curry/garam masala, gengibre, alho, limão",
      "seasoning_refs": [
        "T099",
        "T021"
      ],
      "source_ids": [
        "SRC-2583A03398",
        "SRC-BF10506C58"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: chilli, coentro ou salsinha; curry/garam masala, gengibre, alho, limão — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 84,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING017"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING017",
              "raw_state": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
              "yield_factor": 0.28,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de abóbora e chilli",
            "source_method_ids": [
              "PM-SRC-2583A03398"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente apta para grill",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Pré-cozinhar/dourar a abóbora até macia nas bordas."
              },
              {
                "order": 2,
                "instruction": "Adicionar alho/pimenta autorizados brevemente para perfumar."
              },
              {
                "order": 3,
                "instruction": "Adicionar ovos e queijo da adaptação; firmar a base no fogão."
              },
              {
                "order": 4,
                "instruction": "Finalizar sob grill até inflar e dourar."
              }
            ],
            "source_time_reference": [
              "fonte: abóbora ~10 min; aromáticos ~2 min; fogão ~5 min; grill ~5 min"
            ],
            "source_temperature_reference": [
              "frigideira média; grill alto"
            ],
            "texture_or_doneness_endpoint": [
              "abóbora macia; omelete inflada e dourada"
            ],
            "adaptation_guardrails": [
              "Halloumi só é usado se autorizado; normalmente a adaptação usa outro queijo.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango tikka",
            "source_method_ids": [
              "PM-SRC-BF10506C58"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "espetos",
              "grill/forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte e pasta/especiarias tikka autorizadas; envolver os cubos de frango."
              },
              {
                "order": 2,
                "instruction": "Marinar por cerca de 1 h quando possível."
              },
              {
                "order": 3,
                "instruction": "Retirar excesso de marinada, colocar nos espetos e grelhar, virando periodicamente."
              },
              {
                "order": 4,
                "instruction": "Retirar quando bem dourado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte: 15–20 min sob grill médio; marinada opcional ~1 h"
            ],
            "source_temperature_reference": [
              "grill médio"
            ],
            "texture_or_doneness_endpoint": [
              "bordas douradas e centro cozido"
            ],
            "adaptation_guardrails": [
              "Usar iogurte zero lactose; tomate/chapati/salada da fonte não entram salvo se listados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "abóbora pré-cozida; omelete dobrada; cubos marinados e grelhados/espetados",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-2583A03398",
            "PM-SRC-BF10506C58"
          ]
        }
      }
    },
    "LEG-B38": {
      "id": "LEG-B38",
      "name": "Omelete de abóbora e chilli + frango assado com alecrim e limão",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "abóbora pré-cozida; omelete dobrada; assado; finalizar sob grill para dourar",
      "seasoning_text": "chilli, coentro ou salsinha; alecrim, limão, alho, pimenta",
      "seasoning_refs": [
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-2583A03398",
        "SRC-D6E6893D01"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: chilli, coentro ou salsinha; alecrim, limão, alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.9,
        "best_rating_count": 31,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING017"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING017",
              "raw_state": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
              "yield_factor": 0.28,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de abóbora e chilli",
            "source_method_ids": [
              "PM-SRC-2583A03398"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente apta para grill",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Pré-cozinhar/dourar a abóbora até macia nas bordas."
              },
              {
                "order": 2,
                "instruction": "Adicionar alho/pimenta autorizados brevemente para perfumar."
              },
              {
                "order": 3,
                "instruction": "Adicionar ovos e queijo da adaptação; firmar a base no fogão."
              },
              {
                "order": 4,
                "instruction": "Finalizar sob grill até inflar e dourar."
              }
            ],
            "source_time_reference": [
              "fonte: abóbora ~10 min; aromáticos ~2 min; fogão ~5 min; grill ~5 min"
            ],
            "source_temperature_reference": [
              "frigideira média; grill alto"
            ],
            "texture_or_doneness_endpoint": [
              "abóbora macia; omelete inflada e dourada"
            ],
            "adaptation_guardrails": [
              "Halloumi só é usado se autorizado; normalmente a adaptação usa outro queijo.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango assado com alecrim e limão",
            "source_method_ids": [
              "PM-SRC-D6E6893D01"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar alecrim, alho, limão e temperos autorizados com a gordura da porção."
              },
              {
                "order": 2,
                "instruction": "Cobrir o frango com essa mistura e assar até dourar."
              },
              {
                "order": 3,
                "instruction": "Descansar antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para frango inteiro: 1 h 10 min + 10 min de descanso"
            ],
            "source_temperature_reference": [
              "190°C / 170°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e cozido; repousado antes do corte"
            ],
            "adaptation_guardrails": [
              "A fonte é para ave inteira; para peito/cubos, usar somente o perfil aromático e técnica de assar, não o tempo de 1 h 10 min.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "abóbora pré-cozida; omelete dobrada; assado; finalizar sob grill para dourar",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-2583A03398",
            "PM-SRC-D6E6893D01"
          ]
        }
      }
    },
    "LEG-B39": {
      "id": "LEG-B39",
      "name": "Omelete de abóbora e chilli + frango ao limão e tomilho",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "abóbora pré-cozida; omelete dobrada; grelha bem quente; exterior marcado",
      "seasoning_text": "chilli, coentro ou salsinha; limão, tomilho, pimenta",
      "seasoning_refs": [
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-2583A03398",
        "SRC-ECA8E1F8D9"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: chilli, coentro ou salsinha; limão, tomilho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 31,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING017"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING017",
              "raw_state": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
              "yield_factor": 0.28,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de abóbora e chilli",
            "source_method_ids": [
              "PM-SRC-2583A03398"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente apta para grill",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Pré-cozinhar/dourar a abóbora até macia nas bordas."
              },
              {
                "order": 2,
                "instruction": "Adicionar alho/pimenta autorizados brevemente para perfumar."
              },
              {
                "order": 3,
                "instruction": "Adicionar ovos e queijo da adaptação; firmar a base no fogão."
              },
              {
                "order": 4,
                "instruction": "Finalizar sob grill até inflar e dourar."
              }
            ],
            "source_time_reference": [
              "fonte: abóbora ~10 min; aromáticos ~2 min; fogão ~5 min; grill ~5 min"
            ],
            "source_temperature_reference": [
              "frigideira média; grill alto"
            ],
            "texture_or_doneness_endpoint": [
              "abóbora macia; omelete inflada e dourada"
            ],
            "adaptation_guardrails": [
              "Halloumi só é usado se autorizado; normalmente a adaptação usa outro queijo.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango ao limão e tomilho",
            "source_method_ids": [
              "PM-SRC-ECA8E1F8D9"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "grelha/chapa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar peito de frango com raspas/suco de limão, alho, tomilho e azeite autorizado."
              },
              {
                "order": 2,
                "instruction": "Temperar e colocar em chapa/grelha já quente."
              },
              {
                "order": 3,
                "instruction": "Grelhar dos dois lados até bem marcado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte: 4–5 min por lado para peito"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "exterior marcado; interior cozido e suculento"
            ],
            "adaptation_guardrails": [
              "Não adicionar acompanhamentos da fonte.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "abóbora pré-cozida; omelete dobrada; grelha bem quente; exterior marcado",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-2583A03398",
            "PM-SRC-ECA8E1F8D9"
          ]
        }
      }
    },
    "LEG-B40": {
      "id": "LEG-B40",
      "name": "Omelete de abóbora e chilli + frango curry caseiro",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "abóbora pré-cozida; omelete dobrada; cubos em molho curto e espesso",
      "seasoning_text": "chilli, coentro ou salsinha; curry, cominho, coentro, gengibre, alho",
      "seasoning_refs": [
        "T099"
      ],
      "source_ids": [
        "SRC-2583A03398",
        "SRC-5F81012DF2"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: chilli, coentro ou salsinha; curry, cominho, coentro, gengibre, alho — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 31,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING017",
            "ING023",
            "ING024"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING017",
              "raw_state": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
              "yield_factor": 0.28,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de abóbora e chilli",
            "source_method_ids": [
              "PM-SRC-2583A03398"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente apta para grill",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Pré-cozinhar/dourar a abóbora até macia nas bordas."
              },
              {
                "order": 2,
                "instruction": "Adicionar alho/pimenta autorizados brevemente para perfumar."
              },
              {
                "order": 3,
                "instruction": "Adicionar ovos e queijo da adaptação; firmar a base no fogão."
              },
              {
                "order": 4,
                "instruction": "Finalizar sob grill até inflar e dourar."
              }
            ],
            "source_time_reference": [
              "fonte: abóbora ~10 min; aromáticos ~2 min; fogão ~5 min; grill ~5 min"
            ],
            "source_temperature_reference": [
              "frigideira média; grill alto"
            ],
            "texture_or_doneness_endpoint": [
              "abóbora macia; omelete inflada e dourada"
            ],
            "adaptation_guardrails": [
              "Halloumi só é usado se autorizado; normalmente a adaptação usa outro queijo.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango curry caseiro",
            "source_method_ids": [
              "PM-SRC-5F81012DF2"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira/panela larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar cebola e aromáticos; adicionar alho/gengibre e cozinhar brevemente."
              },
              {
                "order": 2,
                "instruction": "Adicionar o frango e dourar os cubos."
              },
              {
                "order": 3,
                "instruction": "Adicionar especiarias/pasta e os componentes de molho autorizados; cozinhar em fervura suave até o molho reduzir e aderir."
              },
              {
                "order": 4,
                "instruction": "Quando houver iogurte na adaptação, incorporar no final e evitar fervura forte."
              }
            ],
            "source_time_reference": [
              "fonte: cebola 8–10 min; aromáticos ~1 min; frango ~5 min antes do molho; molho 25–30 min"
            ],
            "source_temperature_reference": [
              "médio → fervura suave"
            ],
            "texture_or_doneness_endpoint": [
              "frango cozido e molho concentrado"
            ],
            "adaptation_guardrails": [
              "A versão “curry seco” pode omitir tomate/água/iogurte; nesse caso parar quando especiarias estiverem aderidas ao frango.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "abóbora pré-cozida; omelete dobrada; cubos em molho curto e espesso",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-2583A03398",
            "PM-SRC-5F81012DF2"
          ]
        }
      }
    },
    "LEG-B41": {
      "id": "LEG-B41",
      "name": "Omelete de tomate e queijo tipo feta + paillard de frango com limão e ervas",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frigideira; muçarela zero lactose substitui feta; filé fino batido e grelhado rapidamente",
      "seasoning_text": "orégano, pimenta; limão, salsa, ervas",
      "seasoning_refs": [
        "T034",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-39E3863860",
        "SRC-1A3490590C"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: orégano, pimenta; limão, salsa, ervas — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 43,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de tomate e queijo tipo feta",
            "source_method_ids": [
              "PM-SRC-39E3863860"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente",
              "garfo ou batedor",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer uma fina camada da gordura prevista e adicionar os ovos batidos."
              },
              {
                "order": 2,
                "instruction": "Mover o ovo com o garfo/espátula enquanto firma, preservando centro ligeiramente úmido."
              },
              {
                "order": 3,
                "instruction": "Adicionar tomate e o queijo permitido pela adaptação, dobrar e cozinhar brevemente para terminar de firmar."
              }
            ],
            "source_time_reference": [
              "aprox. 5 min de cocção"
            ],
            "source_temperature_reference": [
              "fogo médio"
            ],
            "texture_or_doneness_endpoint": [
              "dobrada, macia e com centro recém-firme"
            ],
            "adaptation_guardrails": [
              "Na adaptação, usar somente o queijo e tomate previstos na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "paillard de frango com limão e ervas",
            "source_method_ids": [
              "PM-SRC-1A3490590C"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "martelo de carne ou rolo",
              "papel manteiga/filme",
              "grelha/chapa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Achatar o peito entre folhas até espessura uniforme de aproximadamente 0,5 cm."
              },
              {
                "order": 2,
                "instruction": "Misturar alho, ervas, limão, azeite e temperos autorizados; cobrir o frango e marinar sob refrigeração."
              },
              {
                "order": 3,
                "instruction": "Grelhar rapidamente em superfície muito quente, virando uma vez."
              },
              {
                "order": 4,
                "instruction": "Descansar por alguns minutos antes de servir ou fatiar."
              }
            ],
            "source_time_reference": [
              "marinada ≥2 h; fonte: 1–2 min por lado para 0,5 cm"
            ],
            "source_temperature_reference": [
              "grelha/chapa muito quente"
            ],
            "texture_or_doneness_endpoint": [
              "marcas de grelha e centro cozido sem ressecar"
            ],
            "adaptation_guardrails": [
              "O tempo de 1–2 min/lado pressupõe a espessura fina da fonte.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frigideira; muçarela zero lactose substitui feta; filé fino batido e grelhado rapidamente",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-39E3863860",
            "PM-SRC-1A3490590C"
          ]
        }
      }
    },
    "LEG-B42": {
      "id": "LEG-B42",
      "name": "Omelete de tomate e queijo tipo feta + frango gyros",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frigideira; muçarela zero lactose substitui feta; tiras bem douradas, molho de iogurte à parte",
      "seasoning_text": "orégano, pimenta; orégano, alho, limão, páprica",
      "seasoning_refs": [
        "T002",
        "T028",
        "T034"
      ],
      "source_ids": [
        "SRC-39E3863860",
        "SRC-E18543333B"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: orégano, pimenta; orégano, alho, limão, páprica — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 43,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de tomate e queijo tipo feta",
            "source_method_ids": [
              "PM-SRC-39E3863860"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente",
              "garfo ou batedor",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer uma fina camada da gordura prevista e adicionar os ovos batidos."
              },
              {
                "order": 2,
                "instruction": "Mover o ovo com o garfo/espátula enquanto firma, preservando centro ligeiramente úmido."
              },
              {
                "order": 3,
                "instruction": "Adicionar tomate e o queijo permitido pela adaptação, dobrar e cozinhar brevemente para terminar de firmar."
              }
            ],
            "source_time_reference": [
              "aprox. 5 min de cocção"
            ],
            "source_temperature_reference": [
              "fogo médio"
            ],
            "texture_or_doneness_endpoint": [
              "dobrada, macia e com centro recém-firme"
            ],
            "adaptation_guardrails": [
              "Na adaptação, usar somente o queijo e tomate previstos na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango gyros",
            "source_method_ids": [
              "PM-SRC-E18543333B"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "espetos ou frigideira/grelha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cortar o frango em pedaços uniformes e envolver com limão, alho, orégano/ervas e gordura autorizada."
              },
              {
                "order": 2,
                "instruction": "Marinar quando a ficha permitir."
              },
              {
                "order": 3,
                "instruction": "Grelhar em espetos ou em frigideira bem quente em camada única, virando para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir o molho de iogurte separadamente quando previsto."
              }
            ],
            "source_time_reference": [
              "fonte de família de barbecue/souvlaki; tempo varia com o corte"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "cubos/tiras bem dourados e cozidos"
            ],
            "adaptation_guardrails": [
              "Não usar pão, beterraba ou acompanhamentos da fonte que não constem na alternativa.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frigideira; muçarela zero lactose substitui feta; tiras bem douradas, molho de iogurte à parte",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-39E3863860",
            "PM-SRC-E18543333B"
          ]
        }
      }
    },
    "LEG-B43": {
      "id": "LEG-B43",
      "name": "Omelete de tomate e queijo tipo feta + frango churrasco de limão e alho",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frigideira; muçarela zero lactose substitui feta; grelhado/chapado em tiras",
      "seasoning_text": "orégano, pimenta; limão, alho, páprica, pimenta",
      "seasoning_refs": [
        "T034",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-39E3863860",
        "SRC-EC9CFA9DDA"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: orégano, pimenta; limão, alho, páprica, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.9,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de tomate e queijo tipo feta",
            "source_method_ids": [
              "PM-SRC-39E3863860"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente",
              "garfo ou batedor",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer uma fina camada da gordura prevista e adicionar os ovos batidos."
              },
              {
                "order": 2,
                "instruction": "Mover o ovo com o garfo/espátula enquanto firma, preservando centro ligeiramente úmido."
              },
              {
                "order": 3,
                "instruction": "Adicionar tomate e o queijo permitido pela adaptação, dobrar e cozinhar brevemente para terminar de firmar."
              }
            ],
            "source_time_reference": [
              "aprox. 5 min de cocção"
            ],
            "source_temperature_reference": [
              "fogo médio"
            ],
            "texture_or_doneness_endpoint": [
              "dobrada, macia e com centro recém-firme"
            ],
            "adaptation_guardrails": [
              "Na adaptação, usar somente o queijo e tomate previstos na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango churrasco de limão e alho",
            "source_method_ids": [
              "PM-SRC-EC9CFA9DDA"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela não metálica",
              "grelha/chapa ou grill",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro."
              },
              {
                "order": 3,
                "instruction": "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada."
              },
              {
                "order": 4,
                "instruction": "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h"
            ],
            "source_temperature_reference": [
              "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido"
            ],
            "texture_or_doneness_endpoint": [
              "bem dourado por fora e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
              "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frigideira; muçarela zero lactose substitui feta; grelhado/chapado em tiras",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-39E3863860",
            "PM-SRC-EC9CFA9DDA"
          ]
        }
      }
    },
    "LEG-B44": {
      "id": "LEG-B44",
      "name": "Omelete de tomate e queijo tipo feta + frango ao limão e tomilho",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frigideira; muçarela zero lactose substitui feta; grelha bem quente; exterior marcado",
      "seasoning_text": "orégano, pimenta; limão, tomilho, pimenta",
      "seasoning_refs": [
        "T034",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-39E3863860",
        "SRC-ECA8E1F8D9"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: orégano, pimenta; limão, tomilho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 43,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de tomate e queijo tipo feta",
            "source_method_ids": [
              "PM-SRC-39E3863860"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente",
              "garfo ou batedor",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer uma fina camada da gordura prevista e adicionar os ovos batidos."
              },
              {
                "order": 2,
                "instruction": "Mover o ovo com o garfo/espátula enquanto firma, preservando centro ligeiramente úmido."
              },
              {
                "order": 3,
                "instruction": "Adicionar tomate e o queijo permitido pela adaptação, dobrar e cozinhar brevemente para terminar de firmar."
              }
            ],
            "source_time_reference": [
              "aprox. 5 min de cocção"
            ],
            "source_temperature_reference": [
              "fogo médio"
            ],
            "texture_or_doneness_endpoint": [
              "dobrada, macia e com centro recém-firme"
            ],
            "adaptation_guardrails": [
              "Na adaptação, usar somente o queijo e tomate previstos na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango ao limão e tomilho",
            "source_method_ids": [
              "PM-SRC-ECA8E1F8D9"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "grelha/chapa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar peito de frango com raspas/suco de limão, alho, tomilho e azeite autorizado."
              },
              {
                "order": 2,
                "instruction": "Temperar e colocar em chapa/grelha já quente."
              },
              {
                "order": 3,
                "instruction": "Grelhar dos dois lados até bem marcado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte: 4–5 min por lado para peito"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "exterior marcado; interior cozido e suculento"
            ],
            "adaptation_guardrails": [
              "Não adicionar acompanhamentos da fonte.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frigideira; muçarela zero lactose substitui feta; grelha bem quente; exterior marcado",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-39E3863860",
            "PM-SRC-ECA8E1F8D9"
          ]
        }
      }
    },
    "LEG-B45": {
      "id": "LEG-B45",
      "name": "Omelete de tomate e pimentão, adaptada + frango ao limão e tomilho",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frigideira; frango substitui presunto; grelha bem quente; exterior marcado",
      "seasoning_text": "páprica, pimenta; pimentão em pequena quantidade opcional; limão, tomilho, pimenta",
      "seasoning_refs": [
        "T034",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-1780962D35",
        "SRC-ECA8E1F8D9"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: páprica, pimenta; pimentão em pequena quantidade opcional; limão, tomilho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.6,
        "best_rating_count": 41,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023",
            "ING024"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de tomate e pimentão, adaptada",
            "source_method_ids": [
              "PM-SRC-1780962D35"
            ],
            "grounding_level": "existing_sourced_overview",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Aplicar esta característica operacional da ficha: frigideira."
              },
              {
                "order": 2,
                "instruction": "Aplicar esta característica operacional da ficha: frango substitui presunto."
              },
              {
                "order": 3,
                "instruction": "Executar a etapa de selagem/grelha descrita no overview da receita, buscando dourado sem ressecar."
              },
              {
                "order": 4,
                "instruction": "Aplicar esta característica operacional da ficha: exterior marcado."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango ao limão e tomilho",
            "source_method_ids": [
              "PM-SRC-ECA8E1F8D9"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "grelha/chapa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar peito de frango com raspas/suco de limão, alho, tomilho e azeite autorizado."
              },
              {
                "order": 2,
                "instruction": "Temperar e colocar em chapa/grelha já quente."
              },
              {
                "order": 3,
                "instruction": "Grelhar dos dois lados até bem marcado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte: 4–5 min por lado para peito"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "exterior marcado; interior cozido e suculento"
            ],
            "adaptation_guardrails": [
              "Não adicionar acompanhamentos da fonte.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frigideira; frango substitui presunto; grelha bem quente; exterior marcado",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 1,
          "all_source_method_ids": [
            "PM-SRC-1780962D35",
            "PM-SRC-ECA8E1F8D9"
          ]
        }
      }
    },
    "LEG-B46": {
      "id": "LEG-B46",
      "name": "Omelete de tomate e pimentão, adaptada + frango assado com alecrim e limão",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frigideira; frango substitui presunto; assado; finalizar sob grill para dourar",
      "seasoning_text": "páprica, pimenta; pimentão em pequena quantidade opcional; alecrim, limão, alho, pimenta",
      "seasoning_refs": [
        "T034",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-1780962D35",
        "SRC-D6E6893D01"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: páprica, pimenta; pimentão em pequena quantidade opcional; alecrim, limão, alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.9,
        "best_rating_count": 31,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023",
            "ING024"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de tomate e pimentão, adaptada",
            "source_method_ids": [
              "PM-SRC-1780962D35"
            ],
            "grounding_level": "existing_sourced_overview",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Aplicar esta característica operacional da ficha: frigideira."
              },
              {
                "order": 2,
                "instruction": "Aplicar esta característica operacional da ficha: frango substitui presunto."
              },
              {
                "order": 3,
                "instruction": "Executar a etapa de forno/air fryer descrita no overview, usando o dourado e a textura como endpoint."
              },
              {
                "order": 4,
                "instruction": "Aplicar esta característica operacional da ficha: finalizar sob grill para dourar."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango assado com alecrim e limão",
            "source_method_ids": [
              "PM-SRC-D6E6893D01"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar alecrim, alho, limão e temperos autorizados com a gordura da porção."
              },
              {
                "order": 2,
                "instruction": "Cobrir o frango com essa mistura e assar até dourar."
              },
              {
                "order": 3,
                "instruction": "Descansar antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para frango inteiro: 1 h 10 min + 10 min de descanso"
            ],
            "source_temperature_reference": [
              "190°C / 170°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e cozido; repousado antes do corte"
            ],
            "adaptation_guardrails": [
              "A fonte é para ave inteira; para peito/cubos, usar somente o perfil aromático e técnica de assar, não o tempo de 1 h 10 min.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frigideira; frango substitui presunto; assado; finalizar sob grill para dourar",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 1,
          "all_source_method_ids": [
            "PM-SRC-1780962D35",
            "PM-SRC-D6E6893D01"
          ]
        }
      }
    },
    "LEG-B47": {
      "id": "LEG-B47",
      "name": "Omelete de tomate e pimentão, adaptada + frango ao limão e orégano",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frigideira; frango substitui presunto; assado ou grelhado em cubos",
      "seasoning_text": "páprica, pimenta; pimentão em pequena quantidade opcional; limão, orégano, alho",
      "seasoning_refs": [
        "T034",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-1780962D35",
        "SRC-E54E273CF8"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: páprica, pimenta; pimentão em pequena quantidade opcional; limão, orégano, alho — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 141,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023",
            "ING024"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de tomate e pimentão, adaptada",
            "source_method_ids": [
              "PM-SRC-1780962D35"
            ],
            "grounding_level": "existing_sourced_overview",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Aplicar esta característica operacional da ficha: frigideira."
              },
              {
                "order": 2,
                "instruction": "Aplicar esta característica operacional da ficha: frango substitui presunto."
              },
              {
                "order": 3,
                "instruction": "Executar a etapa de selagem/grelha descrita no overview da receita, buscando dourado sem ressecar."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango ao limão e orégano",
            "source_method_ids": [
              "PM-SRC-E54E273CF8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Temperar o frango com limão, orégano e a gordura prevista."
              },
              {
                "order": 2,
                "instruction": "Assar em assadeira quente, deixando espaço entre os pedaços para dourar."
              },
              {
                "order": 3,
                "instruction": "Virar/reorganizar se necessário e retirar quando dourado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte para coxas usa etapas de 20 min e total ~40 min após entrar o frango"
            ],
            "source_temperature_reference": [
              "220°C / 200°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A adaptação normalmente usa peito/cubos e remove batata, bacon, vinho e caldo; portanto o tempo da fonte não é transferível literalmente.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frigideira; frango substitui presunto; assado ou grelhado em cubos",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 1,
          "all_source_method_ids": [
            "PM-SRC-1780962D35",
            "PM-SRC-E54E273CF8"
          ]
        }
      }
    },
    "LEG-B48": {
      "id": "LEG-B48",
      "name": "Omelete de tomate e pimentão, adaptada + frango souvlaki",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "frigideira; frango substitui presunto; cubos em espetos ou frigideira bem quente",
      "seasoning_text": "páprica, pimenta; pimentão em pequena quantidade opcional; limão, alho, orégano",
      "seasoning_refs": [
        "T002",
        "T034",
        "T021"
      ],
      "source_ids": [
        "SRC-1780962D35",
        "SRC-48B8FB322E"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: páprica, pimenta; pimentão em pequena quantidade opcional; limão, alho, orégano — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 230,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING023",
            "ING024"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete de tomate e pimentão, adaptada",
            "source_method_ids": [
              "PM-SRC-1780962D35"
            ],
            "grounding_level": "existing_sourced_overview",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Aplicar esta característica operacional da ficha: frigideira."
              },
              {
                "order": 2,
                "instruction": "Aplicar esta característica operacional da ficha: frango substitui presunto."
              },
              {
                "order": 3,
                "instruction": "Aplicar esta característica operacional da ficha: cubos em espetos ou frigideira bem quente."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango souvlaki",
            "source_method_ids": [
              "PM-SRC-48B8FB322E"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "espetos ou frigideira/grelha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cortar o frango em pedaços uniformes e envolver com limão, alho, orégano/ervas e gordura autorizada."
              },
              {
                "order": 2,
                "instruction": "Marinar quando a ficha permitir."
              },
              {
                "order": 3,
                "instruction": "Grelhar em espetos ou em frigideira bem quente em camada única, virando para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir o molho de iogurte separadamente quando previsto."
              }
            ],
            "source_time_reference": [
              "fonte de família de barbecue/souvlaki; tempo varia com o corte"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "cubos/tiras bem dourados e cozidos"
            ],
            "adaptation_guardrails": [
              "Não usar pão, beterraba ou acompanhamentos da fonte que não constem na alternativa.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "frigideira; frango substitui presunto; cubos em espetos ou frigideira bem quente",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 1,
          "all_source_method_ids": [
            "PM-SRC-1780962D35",
            "PM-SRC-48B8FB322E"
          ]
        }
      }
    },
    "LEG-B49": {
      "id": "LEG-B49",
      "name": "Omelete na air fryer + paillard de frango com limão e ervas",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "air fryer em recipiente raso; sem imersão em óleo; filé fino batido e grelhado rapidamente",
      "seasoning_text": "pimenta, cebolinha; limão, salsa, ervas",
      "seasoning_refs": [
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-5EDCD23E60",
        "SRC-1A3490590C"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: pimenta, cebolinha; limão, salsa, ervas — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 7,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete na air fryer",
            "source_method_ids": [
              "PM-SRC-5EDCD23E60"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "air fryer",
              "recipiente baixo antiaderente resistente ao calor",
              "batedor"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Pré-aquecer a air fryer com o recipiente dentro."
              },
              {
                "order": 2,
                "instruction": "Bater ovos e misturar somente os recheios autorizados."
              },
              {
                "order": 3,
                "instruction": "Adicionar a gordura prevista ao recipiente, despejar a mistura e cozinhar até inflar e dourar."
              }
            ],
            "source_time_reference": [
              "8–10 min"
            ],
            "source_temperature_reference": [
              "180°C"
            ],
            "texture_or_doneness_endpoint": [
              "inflada, dourada e recém-firme"
            ],
            "adaptation_guardrails": [
              "A quantidade de gordura é a da porção, não a da receita-fonte.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "paillard de frango com limão e ervas",
            "source_method_ids": [
              "PM-SRC-1A3490590C"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "martelo de carne ou rolo",
              "papel manteiga/filme",
              "grelha/chapa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Achatar o peito entre folhas até espessura uniforme de aproximadamente 0,5 cm."
              },
              {
                "order": 2,
                "instruction": "Misturar alho, ervas, limão, azeite e temperos autorizados; cobrir o frango e marinar sob refrigeração."
              },
              {
                "order": 3,
                "instruction": "Grelhar rapidamente em superfície muito quente, virando uma vez."
              },
              {
                "order": 4,
                "instruction": "Descansar por alguns minutos antes de servir ou fatiar."
              }
            ],
            "source_time_reference": [
              "marinada ≥2 h; fonte: 1–2 min por lado para 0,5 cm"
            ],
            "source_temperature_reference": [
              "grelha/chapa muito quente"
            ],
            "texture_or_doneness_endpoint": [
              "marcas de grelha e centro cozido sem ressecar"
            ],
            "adaptation_guardrails": [
              "O tempo de 1–2 min/lado pressupõe a espessura fina da fonte.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "air fryer em recipiente raso; sem imersão em óleo; filé fino batido e grelhado rapidamente",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-5EDCD23E60",
            "PM-SRC-1A3490590C"
          ]
        }
      }
    },
    "LEG-B50": {
      "id": "LEG-B50",
      "name": "Omelete na air fryer + frango gyros",
      "category": "breakfast",
      "origin": "legacy_docx",
      "method_overview": "air fryer em recipiente raso; sem imersão em óleo; tiras bem douradas, molho de iogurte à parte",
      "seasoning_text": "pimenta, cebolinha; orégano, alho, limão, páprica",
      "seasoning_refs": [
        "T002",
        "T028",
        "T021"
      ],
      "source_ids": [
        "SRC-5EDCD23E60",
        "SRC-E18543333B"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: pimenta, cebolinha; orégano, alho, limão, páprica — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 7,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete na air fryer",
            "source_method_ids": [
              "PM-SRC-5EDCD23E60"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "air fryer",
              "recipiente baixo antiaderente resistente ao calor",
              "batedor"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Pré-aquecer a air fryer com o recipiente dentro."
              },
              {
                "order": 2,
                "instruction": "Bater ovos e misturar somente os recheios autorizados."
              },
              {
                "order": 3,
                "instruction": "Adicionar a gordura prevista ao recipiente, despejar a mistura e cozinhar até inflar e dourar."
              }
            ],
            "source_time_reference": [
              "8–10 min"
            ],
            "source_temperature_reference": [
              "180°C"
            ],
            "texture_or_doneness_endpoint": [
              "inflada, dourada e recém-firme"
            ],
            "adaptation_guardrails": [
              "A quantidade de gordura é a da porção, não a da receita-fonte.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "frango gyros",
            "source_method_ids": [
              "PM-SRC-E18543333B"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "espetos ou frigideira/grelha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cortar o frango em pedaços uniformes e envolver com limão, alho, orégano/ervas e gordura autorizada."
              },
              {
                "order": 2,
                "instruction": "Marinar quando a ficha permitir."
              },
              {
                "order": 3,
                "instruction": "Grelhar em espetos ou em frigideira bem quente em camada única, virando para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir o molho de iogurte separadamente quando previsto."
              }
            ],
            "source_time_reference": [
              "fonte de família de barbecue/souvlaki; tempo varia com o corte"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "cubos/tiras bem dourados e cozidos"
            ],
            "adaptation_guardrails": [
              "Não usar pão, beterraba ou acompanhamentos da fonte que não constem na alternativa.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "A muçarela é tratada como zero lactose na compra, mantendo os macros da referência padrão para cálculo."
        ],
        "original_method_overview": "air fryer em recipiente raso; sem imersão em óleo; tiras bem douradas, molho de iogurte à parte",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-5EDCD23E60",
            "PM-SRC-E18543333B"
          ]
        }
      }
    },
    "LEG-L02": {
      "id": "LEG-L02",
      "name": "Strogonoff de carne com cogumelos e iogurte zero lactose + vagem com alho + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "carne selada; molho curto; iogurte entra fora do fogo; salteada rapidamente, ainda firme; folhas cruas separadas para preservar textura",
      "seasoning_text": "mostarda, páprica, pimenta; alho, pimenta",
      "seasoning_refs": [
        "T028",
        "T046",
        "T004"
      ],
      "source_ids": [
        "SRC-C1DE9F5FD9",
        "SRC-89DE384F5F"
      ],
      "adaptation_notes": "Creme original reduzido/substituído por iogurte zero lactose; sem acompanhamento amiláceo; porções reescaladas. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: mostarda, páprica, pimenta; alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 24,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING022",
            "ING024",
            "ING025",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING025",
              "raw_state": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
              "yield_factor": 0.44,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Strogonoff de carne com cogumelos e iogurte zero lactose",
            "source_method_ids": [
              "PM-SRC-C1DE9F5FD9"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar cebola e alho; dourar cogumelos separadamente para perderem água."
              },
              {
                "order": 2,
                "instruction": "Secar/temperar a carne e selar rapidamente em frigideira quente sem lotar."
              },
              {
                "order": 3,
                "instruction": "Reunir os componentes e reduzir o molho curto com mostarda/caldo/tomate apenas quando previstos."
              },
              {
                "order": 4,
                "instruction": "Retirar do calor forte e incorporar o iogurte zero lactose da adaptação para manter cremosidade sem talhar."
              }
            ],
            "source_time_reference": [
              "fonte: cebola ~15 min; alho 2–3 min; cogumelos ~5 min; carne 3–4 min; molho ~5 min"
            ],
            "source_temperature_reference": [
              "frigideira quente para selar; calor médio/baixo no molho"
            ],
            "texture_or_doneness_endpoint": [
              "carne dourada; cogumelos sem excesso de líquido; molho cremoso e curto"
            ],
            "adaptation_guardrails": [
              "A fonte usa farinha/crème fraîche; omitir farinha e trocar o lácteo conforme a adaptação.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com alho",
            "source_method_ids": [
              "PM-SRC-89DE384F5F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "wok ou frigideira larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer a gordura contabilizada no wok/frigideira."
              },
              {
                "order": 2,
                "instruction": "Saltear a vagem em fogo alto por cerca de 5 min, até começar a dourar e continuar firme."
              },
              {
                "order": 3,
                "instruction": "Adicionar o alho e continuar apenas até o alho começar a dourar."
              },
              {
                "order": 4,
                "instruction": "Adicionar o molho/tempero autorizado no final e servir."
              }
            ],
            "source_time_reference": [
              "fonte: vagem ~5 min antes do alho"
            ],
            "source_temperature_reference": [
              "fogo alto"
            ],
            "texture_or_doneness_endpoint": [
              "vagem al dente com pontos dourados; alho dourado sem queimar"
            ],
            "adaptation_guardrails": [
              "Molho de ostra/soja só entra se estiver autorizado; não adicionar óleo além da porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir."
        ],
        "adaptation_application": [
          "Creme original reduzido/substituído por iogurte zero lactose; sem acompanhamento amiláceo; porções reescaladas.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "carne selada; molho curto; iogurte entra fora do fogo; salteada rapidamente, ainda firme; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-C1DE9F5FD9",
            "PM-SRC-89DE384F5F"
          ]
        }
      }
    },
    "LEG-L03": {
      "id": "LEG-L03",
      "name": "Strogonoff de carne com cogumelos e iogurte zero lactose + vagem com amêndoas tostadas + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "carne selada; molho curto; iogurte entra fora do fogo; vagem firme com amêndoas tostadas por cima; folhas cruas separadas para preservar textura",
      "seasoning_text": "mostarda, páprica, pimenta; alho, chalota/cebola em traço, pimenta",
      "seasoning_refs": [
        "T028",
        "T046",
        "T004"
      ],
      "source_ids": [
        "SRC-C1DE9F5FD9",
        "SRC-E309A5D52B"
      ],
      "adaptation_notes": "Creme original reduzido/substituído por iogurte zero lactose; sem acompanhamento amiláceo; porções reescaladas. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: mostarda, páprica, pimenta; alho, chalota/cebola em traço, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 13,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING022",
            "ING024",
            "ING025",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING025",
              "raw_state": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
              "yield_factor": 0.44,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Strogonoff de carne com cogumelos e iogurte zero lactose",
            "source_method_ids": [
              "PM-SRC-C1DE9F5FD9"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar cebola e alho; dourar cogumelos separadamente para perderem água."
              },
              {
                "order": 2,
                "instruction": "Secar/temperar a carne e selar rapidamente em frigideira quente sem lotar."
              },
              {
                "order": 3,
                "instruction": "Reunir os componentes e reduzir o molho curto com mostarda/caldo/tomate apenas quando previstos."
              },
              {
                "order": 4,
                "instruction": "Retirar do calor forte e incorporar o iogurte zero lactose da adaptação para manter cremosidade sem talhar."
              }
            ],
            "source_time_reference": [
              "fonte: cebola ~15 min; alho 2–3 min; cogumelos ~5 min; carne 3–4 min; molho ~5 min"
            ],
            "source_temperature_reference": [
              "frigideira quente para selar; calor médio/baixo no molho"
            ],
            "texture_or_doneness_endpoint": [
              "carne dourada; cogumelos sem excesso de líquido; molho cremoso e curto"
            ],
            "adaptation_guardrails": [
              "A fonte usa farinha/crème fraîche; omitir farinha e trocar o lácteo conforme a adaptação.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com amêndoas tostadas",
            "source_method_ids": [
              "PM-SRC-E309A5D52B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela",
              "frigideira"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem até al dente, escorrer e secar."
              },
              {
                "order": 2,
                "instruction": "Amaciar cebola/shallot e alho lentamente na gordura prevista sem deixar queimar."
              },
              {
                "order": 3,
                "instruction": "Adicionar a vagem apenas para aquecer e envolver."
              },
              {
                "order": 4,
                "instruction": "Finalizar com limão e amêndoas tostadas; para marmita, manter as amêndoas separadas até servir."
              }
            ],
            "source_time_reference": [
              "fonte: aromáticos ~8 min; vagem cozida previamente"
            ],
            "source_temperature_reference": [
              "calor suave para aromáticos"
            ],
            "texture_or_doneness_endpoint": [
              "vagem firme; amêndoas crocantes"
            ],
            "adaptation_guardrails": [
              "Quantidade de amêndoa e azeite deve seguir a porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir.",
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Creme original reduzido/substituído por iogurte zero lactose; sem acompanhamento amiláceo; porções reescaladas.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "carne selada; molho curto; iogurte entra fora do fogo; vagem firme com amêndoas tostadas por cima; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-C1DE9F5FD9",
            "PM-SRC-E309A5D52B"
          ]
        }
      }
    },
    "LEG-L04": {
      "id": "LEG-L04",
      "name": "Carne ao curry + vagem com alho + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "cozimento úmido curto até molho aderente; salteada rapidamente, ainda firme; folhas cruas separadas para preservar textura",
      "seasoning_text": "curry, cominho, coentro, gengibre, alho; alho, pimenta",
      "seasoning_refs": [
        "T099",
        "T098"
      ],
      "source_ids": [
        "SRC-419B2CE79F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: curry, cominho, coentro, gengibre, alho; alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.6,
        "best_rating_count": 80,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING022",
            "ING023",
            "ING024",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Carne ao curry + vagem com alho + folhas",
            "source_method_ids": [
              "PM-SRC-419B2CE79F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela larga",
              "colher de pau/espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer parte da gordura prevista e dourar a carne moída em fogo alto, quebrando os grumos; retirar e reservar quando bem colorida."
              },
              {
                "order": 2,
                "instruction": "Na mesma panela, amaciar cebola, alho e gengibre autorizados até ficarem macios."
              },
              {
                "order": 3,
                "instruction": "Adicionar curry/especiarias e cozinhar brevemente para liberar aroma."
              },
              {
                "order": 4,
                "instruction": "Juntar tomate/líquido apenas nas quantidades autorizadas e retornar a carne; cozinhar em fogo médio até o molho curto aderir à carne."
              },
              {
                "order": 5,
                "instruction": "Finalizar com ervas ou iogurte somente quando previstos na versão adaptada."
              }
            ],
            "source_time_reference": [
              "fonte: dourar a carne; aromáticos ~8 min; depois ~20 min em fogo médio com os componentes do curry"
            ],
            "source_temperature_reference": [
              "fogo alto para dourar; médio para terminar"
            ],
            "texture_or_doneness_endpoint": [
              "carne bem dourada, grumos soltos e molho reduzido/aderente"
            ],
            "adaptation_guardrails": [
              "Batata, cenoura, arroz e chutney da fonte são omitidos; água/caldo é reduzido na adaptação para manter o curry curto.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "cozimento úmido curto até molho aderente; salteada rapidamente, ainda firme; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-419B2CE79F"
          ]
        }
      }
    },
    "LEG-L05": {
      "id": "LEG-L05",
      "name": "Carne ao curry + purê de couve-flor + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "cozimento úmido curto até molho aderente; cozida e processada; iogurte zero lactose para cremosidade; folhas cruas separadas para preservar textura",
      "seasoning_text": "curry, cominho, coentro, gengibre, alho; noz-moscada, alho, pimenta",
      "seasoning_refs": [
        "T028",
        "T099",
        "T098"
      ],
      "source_ids": [
        "SRC-419B2CE79F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: curry, cominho, coentro, gengibre, alho; noz-moscada, alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.6,
        "best_rating_count": 80,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING019",
            "ING023",
            "ING024",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING019",
              "raw_state": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
              "yield_factor": 0.98,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Carne ao curry + purê de couve-flor + folhas",
            "source_method_ids": [
              "PM-SRC-419B2CE79F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela larga",
              "colher de pau/espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer parte da gordura prevista e dourar a carne moída em fogo alto, quebrando os grumos; retirar e reservar quando bem colorida."
              },
              {
                "order": 2,
                "instruction": "Na mesma panela, amaciar cebola, alho e gengibre autorizados até ficarem macios."
              },
              {
                "order": 3,
                "instruction": "Adicionar curry/especiarias e cozinhar brevemente para liberar aroma."
              },
              {
                "order": 4,
                "instruction": "Juntar tomate/líquido apenas nas quantidades autorizadas e retornar a carne; cozinhar em fogo médio até o molho curto aderir à carne."
              },
              {
                "order": 5,
                "instruction": "Finalizar com ervas ou iogurte somente quando previstos na versão adaptada."
              }
            ],
            "source_time_reference": [
              "fonte: dourar a carne; aromáticos ~8 min; depois ~20 min em fogo médio com os componentes do curry"
            ],
            "source_temperature_reference": [
              "fogo alto para dourar; médio para terminar"
            ],
            "texture_or_doneness_endpoint": [
              "carne bem dourada, grumos soltos e molho reduzido/aderente"
            ],
            "adaptation_guardrails": [
              "Batata, cenoura, arroz e chutney da fonte são omitidos; água/caldo é reduzido na adaptação para manter o curry curto.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "cozimento úmido curto até molho aderente; cozida e processada; iogurte zero lactose para cremosidade; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-419B2CE79F"
          ]
        }
      }
    },
    "LEG-L07": {
      "id": "LEG-L07",
      "name": "Ragù de carne e tomate + vagem ao limão e parmesão + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "carne bem dourada e molho de tomate reduzido; cozida al dente e finalizada com limão/parmesão; folhas cruas separadas para preservar textura",
      "seasoning_text": "alho, manjericão, orégano, pimenta; limão, pimenta",
      "seasoning_refs": [
        "T036",
        "T034",
        "T021"
      ],
      "source_ids": [
        "SRC-B1518DE66A",
        "SRC-F0447AD9EA"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: alho, manjericão, orégano, pimenta; limão, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 9,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING022",
            "ING023",
            "ING024",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING005",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Ragù de carne e tomate",
            "source_method_ids": [
              "PM-SRC-B1518DE66A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela pesada",
              "frigideira auxiliar opcional",
              "colher"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar aromáticos autorizados; em paralelo, dourar a carne moída em lotes para não cozinhar no próprio vapor."
              },
              {
                "order": 2,
                "instruction": "Juntar carne e aromáticos, adicionar tomate/purê autorizados e levar a fogo baixo."
              },
              {
                "order": 3,
                "instruction": "Cozinhar lentamente até o molho reduzir e concentrar; mexer ocasionalmente."
              },
              {
                "order": 4,
                "instruction": "Finalizar com ervas/queijo apenas se previstos na adaptação."
              }
            ],
            "source_time_reference": [
              "fonte: base de carne/tomate 1½–2 h em fogo muito baixo, seguida de ~30 min após adição final de lácteo"
            ],
            "source_temperature_reference": [
              "dourar em fogo médio-alto; reduzir em fogo muito baixo"
            ],
            "texture_or_doneness_endpoint": [
              "carne bem dourada e molho denso, sem água livre"
            ],
            "adaptation_guardrails": [
              "A versão sem massa omite spaghetti/mascarpone; leite e outros vegetais só entram se estiverem listados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem ao limão e parmesão",
            "source_method_ids": [
              "PM-SRC-F0447AD9EA"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela/vaporizador",
              "tigela"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem brevemente até al dente; opcionalmente resfriar para preservar cor quando será armazenada."
              },
              {
                "order": 2,
                "instruction": "Secar bem."
              },
              {
                "order": 3,
                "instruction": "Misturar com limão/mostarda/azeite autorizados e finalizar com parmesão no momento de servir ou após reaquecer."
              }
            ],
            "source_time_reference": [
              "fonte: vapor ~5 min ou fervura ~3 min"
            ],
            "source_temperature_reference": [
              "cozimento curto"
            ],
            "texture_or_doneness_endpoint": [
              "vagem verde e firme; parmesão aderido sem virar pasta"
            ],
            "adaptation_guardrails": [
              "Usar somente a quantidade de parmesão/azeite contabilizada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "carne bem dourada e molho de tomate reduzido; cozida al dente e finalizada com limão/parmesão; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-B1518DE66A",
            "PM-SRC-F0447AD9EA"
          ]
        }
      }
    },
    "LEG-L08": {
      "id": "LEG-L08",
      "name": "Ragù de carne e tomate + purê de couve-flor + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "carne bem dourada e molho de tomate reduzido; cozida e processada; iogurte zero lactose para cremosidade; folhas cruas separadas para preservar textura",
      "seasoning_text": "alho, manjericão, orégano, pimenta; noz-moscada, alho, pimenta",
      "seasoning_refs": [
        "T028",
        "T036",
        "T034"
      ],
      "source_ids": [
        "SRC-B1518DE66A",
        "SRC-98F3FC1410"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: alho, manjericão, orégano, pimenta; noz-moscada, alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 2,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING019",
            "ING023",
            "ING024",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING019",
              "raw_state": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
              "yield_factor": 0.98,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Ragù de carne e tomate",
            "source_method_ids": [
              "PM-SRC-B1518DE66A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela pesada",
              "frigideira auxiliar opcional",
              "colher"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar aromáticos autorizados; em paralelo, dourar a carne moída em lotes para não cozinhar no próprio vapor."
              },
              {
                "order": 2,
                "instruction": "Juntar carne e aromáticos, adicionar tomate/purê autorizados e levar a fogo baixo."
              },
              {
                "order": 3,
                "instruction": "Cozinhar lentamente até o molho reduzir e concentrar; mexer ocasionalmente."
              },
              {
                "order": 4,
                "instruction": "Finalizar com ervas/queijo apenas se previstos na adaptação."
              }
            ],
            "source_time_reference": [
              "fonte: base de carne/tomate 1½–2 h em fogo muito baixo, seguida de ~30 min após adição final de lácteo"
            ],
            "source_temperature_reference": [
              "dourar em fogo médio-alto; reduzir em fogo muito baixo"
            ],
            "texture_or_doneness_endpoint": [
              "carne bem dourada e molho denso, sem água livre"
            ],
            "adaptation_guardrails": [
              "A versão sem massa omite spaghetti/mascarpone; leite e outros vegetais só entram se estiverem listados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "purê de couve-flor",
            "source_method_ids": [
              "PM-SRC-98F3FC1410"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "panela ou vaporizador",
              "processador/liquidificador"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a couve-flor até ficar completamente macia."
              },
              {
                "order": 2,
                "instruction": "Escorrer e deixar o vapor sair para evitar purê aguado."
              },
              {
                "order": 3,
                "instruction": "Processar até liso com somente os componentes cremosos/gordura autorizados."
              },
              {
                "order": 4,
                "instruction": "Ajustar temperos e manter aquecido sem ferver vigorosamente."
              }
            ],
            "source_time_reference": [
              "fonte de purê; tempo depende do tamanho dos floretes"
            ],
            "source_temperature_reference": [
              "cozimento até maciez; processar quente"
            ],
            "texture_or_doneness_endpoint": [
              "purê liso, espesso e sem água livre"
            ],
            "adaptation_guardrails": [
              "Usar iogurte zero lactose apenas quando constar; sem farinha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "carne bem dourada e molho de tomate reduzido; cozida e processada; iogurte zero lactose para cremosidade; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-B1518DE66A",
            "PM-SRC-98F3FC1410"
          ]
        }
      }
    },
    "LEG-L10": {
      "id": "LEG-L10",
      "name": "Bolonhesa sem massa + vagem com amêndoas tostadas + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "carne moída em molho longo de tomate; servida com vegetal; vagem firme com amêndoas tostadas por cima; folhas cruas separadas para preservar textura",
      "seasoning_text": "alho, ervas italianas, pimenta; alho, chalota/cebola em traço, pimenta",
      "seasoning_refs": [
        "T044",
        "T034",
        "T098"
      ],
      "source_ids": [
        "SRC-A3A876CA09",
        "SRC-E309A5D52B"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: alho, ervas italianas, pimenta; alho, chalota/cebola em traço, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 1207,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING022",
            "ING023",
            "ING024",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Bolonhesa sem massa",
            "source_method_ids": [
              "PM-SRC-A3A876CA09"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "panela pesada",
              "colher"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar a carne moída e amaciar os aromáticos previstos."
              },
              {
                "order": 2,
                "instruction": "Adicionar tomate e temperos autorizados, raspar o fundo da panela e levar a fervura suave."
              },
              {
                "order": 3,
                "instruction": "Cozinhar lentamente até reduzir e desenvolver sabor; servir sem massa quando a ficha disser “sem massa”."
              }
            ],
            "source_time_reference": [
              "receita-fonte de bolonhesa longa (~2 h total)"
            ],
            "source_temperature_reference": [
              "fogo baixo após dourar"
            ],
            "texture_or_doneness_endpoint": [
              "molho espesso e carne macia"
            ],
            "adaptation_guardrails": [
              "Massa, vinho e demais ingredientes da fonte são omitidos se não constarem na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com amêndoas tostadas",
            "source_method_ids": [
              "PM-SRC-E309A5D52B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela",
              "frigideira"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem até al dente, escorrer e secar."
              },
              {
                "order": 2,
                "instruction": "Amaciar cebola/shallot e alho lentamente na gordura prevista sem deixar queimar."
              },
              {
                "order": 3,
                "instruction": "Adicionar a vagem apenas para aquecer e envolver."
              },
              {
                "order": 4,
                "instruction": "Finalizar com limão e amêndoas tostadas; para marmita, manter as amêndoas separadas até servir."
              }
            ],
            "source_time_reference": [
              "fonte: aromáticos ~8 min; vagem cozida previamente"
            ],
            "source_temperature_reference": [
              "calor suave para aromáticos"
            ],
            "texture_or_doneness_endpoint": [
              "vagem firme; amêndoas crocantes"
            ],
            "adaptation_guardrails": [
              "Quantidade de amêndoa e azeite deve seguir a porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir.",
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "carne moída em molho longo de tomate; servida com vegetal; vagem firme com amêndoas tostadas por cima; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A3A876CA09",
            "PM-SRC-E309A5D52B"
          ]
        }
      }
    },
    "LEG-L13": {
      "id": "LEG-L13",
      "name": "Kofta bovina com molho de iogurte e hortelã + berinjela com tomate e iogurte + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "formato de kofta; grelha/air fryer; molho frio de iogurte; berinjela assada/grelhada; molhos em camadas; folhas cruas separadas para preservar textura",
      "seasoning_text": "cominho, coentro, hortelã, alho; alho, hortelã, pimenta",
      "seasoning_refs": [
        "T028",
        "T034",
        "T098"
      ],
      "source_ids": [
        "SRC-E9D3F66FB7",
        "SRC-0E25C4C87F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: cominho, coentro, hortelã, alho; alho, hortelã, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 95,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008",
            "ING020",
            "ING023",
            "ING024",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING020",
              "raw_state": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
              "yield_factor": 0.94,
              "yield_source_id": "SRC-YIELD-USDA-AH102",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Kofta bovina com molho de iogurte e hortelã",
            "source_method_ids": [
              "PM-SRC-E9D3F66FB7"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "frigideira antiaderente",
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne crua moída com os temperos/aromáticos autorizados e moldar pequenas koftas ovais."
              },
              {
                "order": 2,
                "instruction": "Selar em lotes na frigideira; a fonte usa 2–3 min nesta etapa."
              },
              {
                "order": 3,
                "instruction": "Transferir para assadeira e terminar no forno; a fonte usa 200°C/180°C ventilado por 10 min."
              },
              {
                "order": 4,
                "instruction": "Preparar o molho de iogurte/hortelã somente com os ingredientes autorizados e servir separado ou sobre as koftas. A gramagem desta página já deve ser pesada antes da cocção; não é necessário repesar para porcionar."
              }
            ],
            "source_time_reference": [
              "fonte: frigideira 2–3 min; forno 10 min"
            ],
            "source_temperature_reference": [
              "200°C / 180°C ventilado para finalizar"
            ],
            "texture_or_doneness_endpoint": [
              "koftas seladas por fora e totalmente cozidas no centro"
            ],
            "adaptation_guardrails": [
              "Chutney, flatbread e acompanhamentos não entram se não constarem da alternativa; usar iogurte zero lactose quando previsto.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "berinjela com tomate e iogurte",
            "source_method_ids": [
              "PM-SRC-0E25C4C87F"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "frigideira/grelha ou forno",
              "tigelas para molhos"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Assar/grelhar a berinjela até macia e bem dourada."
              },
              {
                "order": 2,
                "instruction": "Preparar o componente de tomate até concentrar e esfriar levemente."
              },
              {
                "order": 3,
                "instruction": "Preparar o molho de iogurte zero lactose frio com os temperos autorizados."
              },
              {
                "order": 4,
                "instruction": "Montar em camadas apenas ao servir ou manter os molhos separados para marmita."
              }
            ],
            "source_time_reference": [
              "receita-fonte ~30 min total"
            ],
            "source_temperature_reference": [
              "calor alto para a berinjela; molhos em calor suave/frio"
            ],
            "texture_or_doneness_endpoint": [
              "berinjela macia; tomate espesso; iogurte frio e cremoso"
            ],
            "adaptation_guardrails": [
              "Usar apenas quantidades/ingredientes da versão adaptada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir.",
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "formato de kofta; grelha/air fryer; molho frio de iogurte; berinjela assada/grelhada; molhos em camadas; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E9D3F66FB7",
            "PM-SRC-0E25C4C87F"
          ]
        }
      }
    },
    "LEG-L15": {
      "id": "LEG-L15",
      "name": "Kofta bovina com molho de iogurte e hortelã + vagem com alho + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "formato de kofta; grelha/air fryer; molho frio de iogurte; salteada rapidamente, ainda firme; folhas cruas separadas para preservar textura",
      "seasoning_text": "cominho, coentro, hortelã, alho; alho, pimenta",
      "seasoning_refs": [
        "T028",
        "T098"
      ],
      "source_ids": [
        "SRC-E9D3F66FB7",
        "SRC-89DE384F5F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: cominho, coentro, hortelã, alho; alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 95,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008",
            "ING022",
            "ING024",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Kofta bovina com molho de iogurte e hortelã",
            "source_method_ids": [
              "PM-SRC-E9D3F66FB7"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "frigideira antiaderente",
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne crua moída com os temperos/aromáticos autorizados e moldar pequenas koftas ovais."
              },
              {
                "order": 2,
                "instruction": "Selar em lotes na frigideira; a fonte usa 2–3 min nesta etapa."
              },
              {
                "order": 3,
                "instruction": "Transferir para assadeira e terminar no forno; a fonte usa 200°C/180°C ventilado por 10 min."
              },
              {
                "order": 4,
                "instruction": "Preparar o molho de iogurte/hortelã somente com os ingredientes autorizados e servir separado ou sobre as koftas. A gramagem desta página já deve ser pesada antes da cocção; não é necessário repesar para porcionar."
              }
            ],
            "source_time_reference": [
              "fonte: frigideira 2–3 min; forno 10 min"
            ],
            "source_temperature_reference": [
              "200°C / 180°C ventilado para finalizar"
            ],
            "texture_or_doneness_endpoint": [
              "koftas seladas por fora e totalmente cozidas no centro"
            ],
            "adaptation_guardrails": [
              "Chutney, flatbread e acompanhamentos não entram se não constarem da alternativa; usar iogurte zero lactose quando previsto.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com alho",
            "source_method_ids": [
              "PM-SRC-89DE384F5F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "wok ou frigideira larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer a gordura contabilizada no wok/frigideira."
              },
              {
                "order": 2,
                "instruction": "Saltear a vagem em fogo alto por cerca de 5 min, até começar a dourar e continuar firme."
              },
              {
                "order": 3,
                "instruction": "Adicionar o alho e continuar apenas até o alho começar a dourar."
              },
              {
                "order": 4,
                "instruction": "Adicionar o molho/tempero autorizado no final e servir."
              }
            ],
            "source_time_reference": [
              "fonte: vagem ~5 min antes do alho"
            ],
            "source_temperature_reference": [
              "fogo alto"
            ],
            "texture_or_doneness_endpoint": [
              "vagem al dente com pontos dourados; alho dourado sem queimar"
            ],
            "adaptation_guardrails": [
              "Molho de ostra/soja só entra se estiver autorizado; não adicionar óleo além da porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "formato de kofta; grelha/air fryer; molho frio de iogurte; salteada rapidamente, ainda firme; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E9D3F66FB7",
            "PM-SRC-89DE384F5F"
          ]
        }
      }
    },
    "LEG-L17": {
      "id": "LEG-L17",
      "name": "Kofte marroquino ao tomate + brócolis assado + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "almôndegas/koftas douradas e finalizadas no molho; forno/air fryer, pontas tostadas; folhas cruas separadas para preservar textura",
      "seasoning_text": "cominho, páprica, canela em traço, coentro; alho, pimenta, limão opcional",
      "seasoning_refs": [
        "T034",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-8E365AEB6D",
        "SRC-D97E9277C4"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: cominho, páprica, canela em traço, coentro; alho, pimenta, limão opcional — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 42,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008",
            "ING018",
            "ING023",
            "ING024",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.65,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING018",
              "raw_state": "Brócolis cru, aparado e pronto para cozinhar",
              "yield_factor": 1.0,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Kofte marroquino ao tomate",
            "source_method_ids": [
              "PM-SRC-8E365AEB6D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "espetos",
              "grill/churrasqueira",
              "panela para molho"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne crua moída com cebola/ervas/especiarias autorizadas e moldar cilindros uniformes em espetos."
              },
              {
                "order": 2,
                "instruction": "Reduzir o molho de tomate/harissa autorizado por 15–20 min ou até espesso."
              },
              {
                "order": 3,
                "instruction": "Grelhar as koftas por cerca de 6–8 min no total, virando, até douradas e cozidas no centro."
              },
              {
                "order": 4,
                "instruction": "porcionar pelo peso cru indicado antes da cocção e aplicar apenas os molhos previstos na alternativa."
              }
            ],
            "source_time_reference": [
              "fonte: molho 15–20 min; koftas 6–8 min"
            ],
            "source_temperature_reference": [
              "grill quente; molho em fervura suave"
            ],
            "texture_or_doneness_endpoint": [
              "koftas douradas e cozidas no centro"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir iogurte, pinoli, açúcar ou acompanhamentos quando não autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "brócolis assado",
            "source_method_ids": [
              "PM-SRC-D97E9277C4"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar bem o brócolis, misturar com a quantidade de azeite prevista e temperos."
              },
              {
                "order": 2,
                "instruction": "Espalhar em camada única sem amontoar."
              },
              {
                "order": 3,
                "instruction": "Assar até macio no interior e com pontas/bordas tostadas, movimentando a assadeira aproximadamente na metade."
              }
            ],
            "source_time_reference": [
              "25–30 min"
            ],
            "source_temperature_reference": [
              "180°C / 160°C ventilado na fonte"
            ],
            "texture_or_doneness_endpoint": [
              "macio com bordas crocantes/tostadas"
            ],
            "adaptation_guardrails": [
              "Limão/alho entram apenas conforme tempero autorizado.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "almôndegas/koftas douradas e finalizadas no molho; forno/air fryer, pontas tostadas; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-8E365AEB6D",
            "PM-SRC-D97E9277C4"
          ]
        }
      }
    },
    "LEG-L18": {
      "id": "LEG-L18",
      "name": "Kofte marroquino ao tomate + vagem com mostarda em grãos + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "almôndegas/koftas douradas e finalizadas no molho; cozida al dente e envolvida em molho leve; folhas cruas separadas para preservar textura",
      "seasoning_text": "cominho, páprica, canela em traço, coentro; mostarda em grãos, vinagre, pimenta",
      "seasoning_refs": [
        "T034",
        "T004",
        "T098"
      ],
      "source_ids": [
        "SRC-8E365AEB6D",
        "SRC-A67220CDDD"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: cominho, páprica, canela em traço, coentro; mostarda em grãos, vinagre, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 42,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008",
            "ING022",
            "ING023",
            "ING024",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.65,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Kofte marroquino ao tomate",
            "source_method_ids": [
              "PM-SRC-8E365AEB6D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "espetos",
              "grill/churrasqueira",
              "panela para molho"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne crua moída com cebola/ervas/especiarias autorizadas e moldar cilindros uniformes em espetos."
              },
              {
                "order": 2,
                "instruction": "Reduzir o molho de tomate/harissa autorizado por 15–20 min ou até espesso."
              },
              {
                "order": 3,
                "instruction": "Grelhar as koftas por cerca de 6–8 min no total, virando, até douradas e cozidas no centro."
              },
              {
                "order": 4,
                "instruction": "porcionar pelo peso cru indicado antes da cocção e aplicar apenas os molhos previstos na alternativa."
              }
            ],
            "source_time_reference": [
              "fonte: molho 15–20 min; koftas 6–8 min"
            ],
            "source_temperature_reference": [
              "grill quente; molho em fervura suave"
            ],
            "texture_or_doneness_endpoint": [
              "koftas douradas e cozidas no centro"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir iogurte, pinoli, açúcar ou acompanhamentos quando não autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com mostarda em grãos",
            "source_method_ids": [
              "PM-SRC-A67220CDDD"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela",
              "frigideira rasa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem em água fervente até ficar verde viva e ainda com leve crocância."
              },
              {
                "order": 2,
                "instruction": "Amaciar o aromático autorizado na gordura prevista; adicionar mostarda e o componente cremoso apenas se houver."
              },
              {
                "order": 3,
                "instruction": "Adicionar vagem escorrida e limão, envolver rapidamente e servir."
              }
            ],
            "source_time_reference": [
              "fonte: vagem 4–5 min"
            ],
            "source_temperature_reference": [
              "fervura para vagem; calor moderado no molho"
            ],
            "texture_or_doneness_endpoint": [
              "vagem al dente, revestida por molho leve"
            ],
            "adaptation_guardrails": [
              "Crème fraîche da fonte pode ser omitido/trocado por iogurte zero lactose somente se isso constar na ficha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "almôndegas/koftas douradas e finalizadas no molho; cozida al dente e envolvida em molho leve; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-8E365AEB6D",
            "PM-SRC-A67220CDDD"
          ]
        }
      }
    },
    "LEG-L20": {
      "id": "LEG-L20",
      "name": "Hambúrguer kofta caseiro + vagem ao limão e parmesão + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "hambúrguer moldado, chapa ou air fryer; sem pão; cozida al dente e finalizada com limão/parmesão; folhas cruas separadas para preservar textura",
      "seasoning_text": "cominho, coentro, salsa, alho; limão, pimenta",
      "seasoning_refs": [
        "T021",
        "T098",
        "T017"
      ],
      "source_ids": [
        "SRC-31F2558DC1",
        "SRC-F0447AD9EA"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: cominho, coentro, salsa, alho; limão, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 9,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008",
            "ING022",
            "ING024",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Hambúrguer kofta caseiro",
            "source_method_ids": [
              "PM-SRC-31F2558DC1"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "grelha/chapa ou air fryer",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne moída com as especiarias/ervas autorizadas até distribuir uniformemente, sem compactar em excesso."
              },
              {
                "order": 2,
                "instruction": "Moldar em cilindros, koftas, discos ou espetos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Grelhar/chapear ou usar air fryer, virando quando necessário para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir molho de iogurte/hortelã separado quando previsto; em versões ao tomate, terminar as koftas no molho reduzido."
              }
            ],
            "source_time_reference": [
              "fontes de kofta: normalmente ~20–50 min total conforme receita/formato"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente; molho em fervura suave"
            ],
            "texture_or_doneness_endpoint": [
              "superfície bem dourada; centro cozido; molho reduzido quando aplicável"
            ],
            "adaptation_guardrails": [
              "As fontes frequentemente usam cordeiro/pão; aqui manter a carne e ingredientes da nossa porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem ao limão e parmesão",
            "source_method_ids": [
              "PM-SRC-F0447AD9EA"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela/vaporizador",
              "tigela"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem brevemente até al dente; opcionalmente resfriar para preservar cor quando será armazenada."
              },
              {
                "order": 2,
                "instruction": "Secar bem."
              },
              {
                "order": 3,
                "instruction": "Misturar com limão/mostarda/azeite autorizados e finalizar com parmesão no momento de servir ou após reaquecer."
              }
            ],
            "source_time_reference": [
              "fonte: vapor ~5 min ou fervura ~3 min"
            ],
            "source_temperature_reference": [
              "cozimento curto"
            ],
            "texture_or_doneness_endpoint": [
              "vagem verde e firme; parmesão aderido sem virar pasta"
            ],
            "adaptation_guardrails": [
              "Usar somente a quantidade de parmesão/azeite contabilizada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "hambúrguer moldado, chapa ou air fryer; sem pão; cozida al dente e finalizada com limão/parmesão; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-31F2558DC1",
            "PM-SRC-F0447AD9EA"
          ]
        }
      }
    },
    "LEG-L21": {
      "id": "LEG-L21",
      "name": "Hambúrguer kofta caseiro + purê de couve-flor + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "hambúrguer moldado, chapa ou air fryer; sem pão; cozida e processada; iogurte zero lactose para cremosidade; folhas cruas separadas para preservar textura",
      "seasoning_text": "cominho, coentro, salsa, alho; noz-moscada, alho, pimenta",
      "seasoning_refs": [
        "T028",
        "T098"
      ],
      "source_ids": [
        "SRC-31F2558DC1",
        "SRC-98F3FC1410"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: cominho, coentro, salsa, alho; noz-moscada, alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 2,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008",
            "ING019",
            "ING024",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING019",
              "raw_state": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
              "yield_factor": 0.98,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Hambúrguer kofta caseiro",
            "source_method_ids": [
              "PM-SRC-31F2558DC1"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "grelha/chapa ou air fryer",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne moída com as especiarias/ervas autorizadas até distribuir uniformemente, sem compactar em excesso."
              },
              {
                "order": 2,
                "instruction": "Moldar em cilindros, koftas, discos ou espetos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Grelhar/chapear ou usar air fryer, virando quando necessário para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir molho de iogurte/hortelã separado quando previsto; em versões ao tomate, terminar as koftas no molho reduzido."
              }
            ],
            "source_time_reference": [
              "fontes de kofta: normalmente ~20–50 min total conforme receita/formato"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente; molho em fervura suave"
            ],
            "texture_or_doneness_endpoint": [
              "superfície bem dourada; centro cozido; molho reduzido quando aplicável"
            ],
            "adaptation_guardrails": [
              "As fontes frequentemente usam cordeiro/pão; aqui manter a carne e ingredientes da nossa porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "purê de couve-flor",
            "source_method_ids": [
              "PM-SRC-98F3FC1410"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "panela ou vaporizador",
              "processador/liquidificador"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a couve-flor até ficar completamente macia."
              },
              {
                "order": 2,
                "instruction": "Escorrer e deixar o vapor sair para evitar purê aguado."
              },
              {
                "order": 3,
                "instruction": "Processar até liso com somente os componentes cremosos/gordura autorizados."
              },
              {
                "order": 4,
                "instruction": "Ajustar temperos e manter aquecido sem ferver vigorosamente."
              }
            ],
            "source_time_reference": [
              "fonte de purê; tempo depende do tamanho dos floretes"
            ],
            "source_temperature_reference": [
              "cozimento até maciez; processar quente"
            ],
            "texture_or_doneness_endpoint": [
              "purê liso, espesso e sem água livre"
            ],
            "adaptation_guardrails": [
              "Usar iogurte zero lactose apenas quando constar; sem farinha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "hambúrguer moldado, chapa ou air fryer; sem pão; cozida e processada; iogurte zero lactose para cremosidade; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 2,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-31F2558DC1",
            "PM-SRC-98F3FC1410"
          ]
        }
      }
    },
    "LEG-L22": {
      "id": "LEG-L22",
      "name": "Almôndegas ao strogonoff + vagem com alho + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "almôndegas assadas/air fryer e finalizadas no molho; salteada rapidamente, ainda firme; folhas cruas separadas para preservar textura",
      "seasoning_text": "mostarda, páprica, pimenta; alho, pimenta",
      "seasoning_refs": [
        "T004",
        "T098"
      ],
      "source_ids": [
        "SRC-567AB4BDA3",
        "SRC-89DE384F5F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: mostarda, páprica, pimenta; alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 24,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING022",
            "ING024",
            "ING025",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING025",
              "raw_state": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
              "yield_factor": 0.44,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Almôndegas ao strogonoff",
            "source_method_ids": [
              "PM-SRC-567AB4BDA3"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "frigideira larga com tampa",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Temperar a carne crua moída autorizada e moldar almôndegas uniformes, sem compactar excessivamente."
              },
              {
                "order": 2,
                "instruction": "Dourar as almôndegas em todos os lados e reservar."
              },
              {
                "order": 3,
                "instruction": "Amaciar a cebola; adicionar alho e cogumelos e cozinhar até começarem a dourar."
              },
              {
                "order": 4,
                "instruction": "Adicionar os componentes de molho autorizados e cozinhar brevemente para retirar sabor cru; acrescentar o líquido permitido aos poucos."
              },
              {
                "order": 5,
                "instruction": "Retornar as almôndegas, tampar e cozinhar em fervura suave até o centro estar cozido; a fonte usa 15 min."
              },
              {
                "order": 6,
                "instruction": "Incorporar o iogurte/lácteo adaptado fora de fervura forte. A gramagem desta página já deve ser pesada antes da cocção; não é necessário repesar para porcionar."
              }
            ],
            "source_time_reference": [
              "fonte: ~15 min de fervura suave das almôndegas no molho após dourar"
            ],
            "source_temperature_reference": [
              "fogo médio para dourar; fervura suave para finalizar"
            ],
            "texture_or_doneness_endpoint": [
              "almôndegas douradas, cozidas no centro e molho cremoso"
            ],
            "adaptation_guardrails": [
              "A farinha, creme azedo e acompanhamentos da fonte não entram automaticamente. Usar apenas os componentes autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com alho",
            "source_method_ids": [
              "PM-SRC-89DE384F5F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "wok ou frigideira larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer a gordura contabilizada no wok/frigideira."
              },
              {
                "order": 2,
                "instruction": "Saltear a vagem em fogo alto por cerca de 5 min, até começar a dourar e continuar firme."
              },
              {
                "order": 3,
                "instruction": "Adicionar o alho e continuar apenas até o alho começar a dourar."
              },
              {
                "order": 4,
                "instruction": "Adicionar o molho/tempero autorizado no final e servir."
              }
            ],
            "source_time_reference": [
              "fonte: vagem ~5 min antes do alho"
            ],
            "source_temperature_reference": [
              "fogo alto"
            ],
            "texture_or_doneness_endpoint": [
              "vagem al dente com pontos dourados; alho dourado sem queimar"
            ],
            "adaptation_guardrails": [
              "Molho de ostra/soja só entra se estiver autorizado; não adicionar óleo além da porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "almôndegas assadas/air fryer e finalizadas no molho; salteada rapidamente, ainda firme; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-567AB4BDA3",
            "PM-SRC-89DE384F5F"
          ]
        }
      }
    },
    "LEG-L23": {
      "id": "LEG-L23",
      "name": "Almôndegas ao strogonoff + vagem com amêndoas tostadas + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "almôndegas assadas/air fryer e finalizadas no molho; vagem firme com amêndoas tostadas por cima; folhas cruas separadas para preservar textura",
      "seasoning_text": "mostarda, páprica, pimenta; alho, chalota/cebola em traço, pimenta",
      "seasoning_refs": [
        "T004",
        "T098"
      ],
      "source_ids": [
        "SRC-567AB4BDA3",
        "SRC-E309A5D52B"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: mostarda, páprica, pimenta; alho, chalota/cebola em traço, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 13,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING022",
            "ING024",
            "ING025",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING025",
              "raw_state": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
              "yield_factor": 0.44,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Almôndegas ao strogonoff",
            "source_method_ids": [
              "PM-SRC-567AB4BDA3"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "frigideira larga com tampa",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Temperar a carne crua moída autorizada e moldar almôndegas uniformes, sem compactar excessivamente."
              },
              {
                "order": 2,
                "instruction": "Dourar as almôndegas em todos os lados e reservar."
              },
              {
                "order": 3,
                "instruction": "Amaciar a cebola; adicionar alho e cogumelos e cozinhar até começarem a dourar."
              },
              {
                "order": 4,
                "instruction": "Adicionar os componentes de molho autorizados e cozinhar brevemente para retirar sabor cru; acrescentar o líquido permitido aos poucos."
              },
              {
                "order": 5,
                "instruction": "Retornar as almôndegas, tampar e cozinhar em fervura suave até o centro estar cozido; a fonte usa 15 min."
              },
              {
                "order": 6,
                "instruction": "Incorporar o iogurte/lácteo adaptado fora de fervura forte. A gramagem desta página já deve ser pesada antes da cocção; não é necessário repesar para porcionar."
              }
            ],
            "source_time_reference": [
              "fonte: ~15 min de fervura suave das almôndegas no molho após dourar"
            ],
            "source_temperature_reference": [
              "fogo médio para dourar; fervura suave para finalizar"
            ],
            "texture_or_doneness_endpoint": [
              "almôndegas douradas, cozidas no centro e molho cremoso"
            ],
            "adaptation_guardrails": [
              "A farinha, creme azedo e acompanhamentos da fonte não entram automaticamente. Usar apenas os componentes autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com amêndoas tostadas",
            "source_method_ids": [
              "PM-SRC-E309A5D52B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela",
              "frigideira"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem até al dente, escorrer e secar."
              },
              {
                "order": 2,
                "instruction": "Amaciar cebola/shallot e alho lentamente na gordura prevista sem deixar queimar."
              },
              {
                "order": 3,
                "instruction": "Adicionar a vagem apenas para aquecer e envolver."
              },
              {
                "order": 4,
                "instruction": "Finalizar com limão e amêndoas tostadas; para marmita, manter as amêndoas separadas até servir."
              }
            ],
            "source_time_reference": [
              "fonte: aromáticos ~8 min; vagem cozida previamente"
            ],
            "source_temperature_reference": [
              "calor suave para aromáticos"
            ],
            "texture_or_doneness_endpoint": [
              "vagem firme; amêndoas crocantes"
            ],
            "adaptation_guardrails": [
              "Quantidade de amêndoa e azeite deve seguir a porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir.",
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "almôndegas assadas/air fryer e finalizadas no molho; vagem firme com amêndoas tostadas por cima; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-567AB4BDA3",
            "PM-SRC-E309A5D52B"
          ]
        }
      }
    },
    "LEG-L25": {
      "id": "LEG-L25",
      "name": "Carne de panela leve + vagem com mostarda em grãos + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "pressão/cozimento lento; molho reduzido, sem farinha; cozida al dente e envolvida em molho leve; folhas cruas separadas para preservar textura",
      "seasoning_text": "louro, alho, pimenta, tomilho; mostarda em grãos, vinagre, pimenta",
      "seasoning_refs": [
        "T004",
        "T098"
      ],
      "source_ids": [
        "SRC-5F8FE8416C",
        "SRC-A67220CDDD"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: louro, alho, pimenta, tomilho; mostarda em grãos, vinagre, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 682,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING022",
            "ING023",
            "ING024",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Carne de panela leve",
            "source_method_ids": [
              "PM-SRC-5F8FE8416C"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira",
              "panela de cozimento lento ou panela pesada"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar cebola/aromáticos autorizados e preparar a base do molho."
              },
              {
                "order": 2,
                "instruction": "Dourar a carne em lotes antes do cozimento lento para obter sabor de Maillard."
              },
              {
                "order": 3,
                "instruction": "Transferir para cozimento lento com os líquidos/temperos autorizados e cozinhar até a carne ficar muito macia."
              },
              {
                "order": 4,
                "instruction": "Se o molho estiver ralo, reduzir em panela aberta; a adaptação não usa farinha/amido quando não listado."
              }
            ],
            "source_time_reference": [
              "fonte: 8–10 h em low ou ~4 h em high"
            ],
            "source_temperature_reference": [
              "slow cooker low/high; selagem em frigideira quente"
            ],
            "texture_or_doneness_endpoint": [
              "carne muito macia; molho reduzido e aderente"
            ],
            "adaptation_guardrails": [
              "Omitir cenoura/celery/cornflour e outros itens não listados; pode usar pressão/cozimento lento equivalente conforme ficha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com mostarda em grãos",
            "source_method_ids": [
              "PM-SRC-A67220CDDD"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela",
              "frigideira rasa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem em água fervente até ficar verde viva e ainda com leve crocância."
              },
              {
                "order": 2,
                "instruction": "Amaciar o aromático autorizado na gordura prevista; adicionar mostarda e o componente cremoso apenas se houver."
              },
              {
                "order": 3,
                "instruction": "Adicionar vagem escorrida e limão, envolver rapidamente e servir."
              }
            ],
            "source_time_reference": [
              "fonte: vagem 4–5 min"
            ],
            "source_temperature_reference": [
              "fervura para vagem; calor moderado no molho"
            ],
            "texture_or_doneness_endpoint": [
              "vagem al dente, revestida por molho leve"
            ],
            "adaptation_guardrails": [
              "Crème fraîche da fonte pode ser omitido/trocado por iogurte zero lactose somente se isso constar na ficha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "pressão/cozimento lento; molho reduzido, sem farinha; cozida al dente e envolvida em molho leve; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-5F8FE8416C",
            "PM-SRC-A67220CDDD"
          ]
        }
      }
    },
    "LEG-L26": {
      "id": "LEG-L26",
      "name": "Carne de panela leve + berinjela com tomate e iogurte + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "pressão/cozimento lento; molho reduzido, sem farinha; berinjela assada/grelhada; molhos em camadas; folhas cruas separadas para preservar textura",
      "seasoning_text": "louro, alho, pimenta, tomilho; alho, hortelã, pimenta",
      "seasoning_refs": [
        "T028",
        "T034",
        "T098"
      ],
      "source_ids": [
        "SRC-5F8FE8416C",
        "SRC-0E25C4C87F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: louro, alho, pimenta, tomilho; alho, hortelã, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 682,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING020",
            "ING023",
            "ING024",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING020",
              "raw_state": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
              "yield_factor": 0.94,
              "yield_source_id": "SRC-YIELD-USDA-AH102",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Carne de panela leve",
            "source_method_ids": [
              "PM-SRC-5F8FE8416C"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira",
              "panela de cozimento lento ou panela pesada"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar cebola/aromáticos autorizados e preparar a base do molho."
              },
              {
                "order": 2,
                "instruction": "Dourar a carne em lotes antes do cozimento lento para obter sabor de Maillard."
              },
              {
                "order": 3,
                "instruction": "Transferir para cozimento lento com os líquidos/temperos autorizados e cozinhar até a carne ficar muito macia."
              },
              {
                "order": 4,
                "instruction": "Se o molho estiver ralo, reduzir em panela aberta; a adaptação não usa farinha/amido quando não listado."
              }
            ],
            "source_time_reference": [
              "fonte: 8–10 h em low ou ~4 h em high"
            ],
            "source_temperature_reference": [
              "slow cooker low/high; selagem em frigideira quente"
            ],
            "texture_or_doneness_endpoint": [
              "carne muito macia; molho reduzido e aderente"
            ],
            "adaptation_guardrails": [
              "Omitir cenoura/celery/cornflour e outros itens não listados; pode usar pressão/cozimento lento equivalente conforme ficha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "berinjela com tomate e iogurte",
            "source_method_ids": [
              "PM-SRC-0E25C4C87F"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "frigideira/grelha ou forno",
              "tigelas para molhos"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Assar/grelhar a berinjela até macia e bem dourada."
              },
              {
                "order": 2,
                "instruction": "Preparar o componente de tomate até concentrar e esfriar levemente."
              },
              {
                "order": 3,
                "instruction": "Preparar o molho de iogurte zero lactose frio com os temperos autorizados."
              },
              {
                "order": 4,
                "instruction": "Montar em camadas apenas ao servir ou manter os molhos separados para marmita."
              }
            ],
            "source_time_reference": [
              "receita-fonte ~30 min total"
            ],
            "source_temperature_reference": [
              "calor alto para a berinjela; molhos em calor suave/frio"
            ],
            "texture_or_doneness_endpoint": [
              "berinjela macia; tomate espesso; iogurte frio e cremoso"
            ],
            "adaptation_guardrails": [
              "Usar apenas quantidades/ingredientes da versão adaptada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir.",
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "pressão/cozimento lento; molho reduzido, sem farinha; berinjela assada/grelhada; molhos em camadas; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-5F8FE8416C",
            "PM-SRC-0E25C4C87F"
          ]
        }
      }
    },
    "LEG-L28": {
      "id": "LEG-L28",
      "name": "Carne com cebola estilo pot-roast + purê de couve-flor + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "cozimento lento com cebola bem dourada; cozida e processada; iogurte zero lactose para cremosidade; folhas cruas separadas para preservar textura",
      "seasoning_text": "tomilho, alho, pimenta; noz-moscada, alho, pimenta",
      "seasoning_refs": [
        "T028",
        "T098"
      ],
      "source_ids": [
        "SRC-D0DC37E945",
        "SRC-98F3FC1410"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: tomilho, alho, pimenta; noz-moscada, alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 2,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING019",
            "ING024",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING019",
              "raw_state": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
              "yield_factor": 0.98,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Carne com cebola estilo pot-roast",
            "source_method_ids": [
              "PM-SRC-D0DC37E945"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "panela pesada com tampa ou slow cooker",
              "frigideira"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar bem a carne e retirar."
              },
              {
                "order": 2,
                "instruction": "Cozinhar a cebola até bem caramelizada/dourada, aproveitando o fundo da panela."
              },
              {
                "order": 3,
                "instruction": "Retornar a carne com o líquido/temperos autorizados e cozinhar lentamente, tampado, até macia."
              },
              {
                "order": 4,
                "instruction": "Retirar a carne, descansar/fatiar e reduzir o molho de cebola se necessário."
              }
            ],
            "source_time_reference": [
              "fonte de pot-roast/cozimento lento; tempo depende do corte e equipamento"
            ],
            "source_temperature_reference": [
              "selagem alta; cozimento baixo e lento"
            ],
            "texture_or_doneness_endpoint": [
              "carne macia; cebola bem dourada; molho concentrado"
            ],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da gravy original que não estejam autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "purê de couve-flor",
            "source_method_ids": [
              "PM-SRC-98F3FC1410"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "panela ou vaporizador",
              "processador/liquidificador"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a couve-flor até ficar completamente macia."
              },
              {
                "order": 2,
                "instruction": "Escorrer e deixar o vapor sair para evitar purê aguado."
              },
              {
                "order": 3,
                "instruction": "Processar até liso com somente os componentes cremosos/gordura autorizados."
              },
              {
                "order": 4,
                "instruction": "Ajustar temperos e manter aquecido sem ferver vigorosamente."
              }
            ],
            "source_time_reference": [
              "fonte de purê; tempo depende do tamanho dos floretes"
            ],
            "source_temperature_reference": [
              "cozimento até maciez; processar quente"
            ],
            "texture_or_doneness_endpoint": [
              "purê liso, espesso e sem água livre"
            ],
            "adaptation_guardrails": [
              "Usar iogurte zero lactose apenas quando constar; sem farinha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "cozimento lento com cebola bem dourada; cozida e processada; iogurte zero lactose para cremosidade; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 2,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-D0DC37E945",
            "PM-SRC-98F3FC1410"
          ]
        }
      }
    },
    "LEG-L30": {
      "id": "LEG-L30",
      "name": "Carne com cebola estilo pot-roast + brócolis assado + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "cozimento lento com cebola bem dourada; forno/air fryer, pontas tostadas; folhas cruas separadas para preservar textura",
      "seasoning_text": "tomilho, alho, pimenta; alho, pimenta, limão opcional",
      "seasoning_refs": [
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-D0DC37E945",
        "SRC-D97E9277C4"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: tomilho, alho, pimenta; alho, pimenta, limão opcional — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.5,
        "best_rating_count": 210,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING018",
            "ING024",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING018",
              "raw_state": "Brócolis cru, aparado e pronto para cozinhar",
              "yield_factor": 1.0,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Carne com cebola estilo pot-roast",
            "source_method_ids": [
              "PM-SRC-D0DC37E945"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "panela pesada com tampa ou slow cooker",
              "frigideira"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar bem a carne e retirar."
              },
              {
                "order": 2,
                "instruction": "Cozinhar a cebola até bem caramelizada/dourada, aproveitando o fundo da panela."
              },
              {
                "order": 3,
                "instruction": "Retornar a carne com o líquido/temperos autorizados e cozinhar lentamente, tampado, até macia."
              },
              {
                "order": 4,
                "instruction": "Retirar a carne, descansar/fatiar e reduzir o molho de cebola se necessário."
              }
            ],
            "source_time_reference": [
              "fonte de pot-roast/cozimento lento; tempo depende do corte e equipamento"
            ],
            "source_temperature_reference": [
              "selagem alta; cozimento baixo e lento"
            ],
            "texture_or_doneness_endpoint": [
              "carne macia; cebola bem dourada; molho concentrado"
            ],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da gravy original que não estejam autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "brócolis assado",
            "source_method_ids": [
              "PM-SRC-D97E9277C4"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar bem o brócolis, misturar com a quantidade de azeite prevista e temperos."
              },
              {
                "order": 2,
                "instruction": "Espalhar em camada única sem amontoar."
              },
              {
                "order": 3,
                "instruction": "Assar até macio no interior e com pontas/bordas tostadas, movimentando a assadeira aproximadamente na metade."
              }
            ],
            "source_time_reference": [
              "25–30 min"
            ],
            "source_temperature_reference": [
              "180°C / 160°C ventilado na fonte"
            ],
            "texture_or_doneness_endpoint": [
              "macio com bordas crocantes/tostadas"
            ],
            "adaptation_guardrails": [
              "Limão/alho entram apenas conforme tempero autorizado.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "cozimento lento com cebola bem dourada; forno/air fryer, pontas tostadas; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-D0DC37E945",
            "PM-SRC-D97E9277C4"
          ]
        }
      }
    },
    "LEG-L33": {
      "id": "LEG-L33",
      "name": "Frango churrasco de limão e alho + vagem ao limão e parmesão + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "grelhado em filé ou cubos; sem fritura por imersão; cozida al dente e finalizada com limão/parmesão; folhas cruas separadas para preservar textura",
      "seasoning_text": "limão, alho, páprica, pimenta; limão, pimenta",
      "seasoning_refs": [
        "T021",
        "T098",
        "T017"
      ],
      "source_ids": [
        "SRC-EC9CFA9DDA",
        "SRC-F0447AD9EA"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão, alho, páprica, pimenta; limão, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 9,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING022",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango churrasco de limão e alho",
            "source_method_ids": [
              "PM-SRC-EC9CFA9DDA"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela não metálica",
              "grelha/chapa ou grill",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro."
              },
              {
                "order": 3,
                "instruction": "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada."
              },
              {
                "order": 4,
                "instruction": "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h"
            ],
            "source_temperature_reference": [
              "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido"
            ],
            "texture_or_doneness_endpoint": [
              "bem dourado por fora e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
              "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem ao limão e parmesão",
            "source_method_ids": [
              "PM-SRC-F0447AD9EA"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela/vaporizador",
              "tigela"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem brevemente até al dente; opcionalmente resfriar para preservar cor quando será armazenada."
              },
              {
                "order": 2,
                "instruction": "Secar bem."
              },
              {
                "order": 3,
                "instruction": "Misturar com limão/mostarda/azeite autorizados e finalizar com parmesão no momento de servir ou após reaquecer."
              }
            ],
            "source_time_reference": [
              "fonte: vapor ~5 min ou fervura ~3 min"
            ],
            "source_temperature_reference": [
              "cozimento curto"
            ],
            "texture_or_doneness_endpoint": [
              "vagem verde e firme; parmesão aderido sem virar pasta"
            ],
            "adaptation_guardrails": [
              "Usar somente a quantidade de parmesão/azeite contabilizada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "grelhado em filé ou cubos; sem fritura por imersão; cozida al dente e finalizada com limão/parmesão; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-EC9CFA9DDA",
            "PM-SRC-F0447AD9EA"
          ]
        }
      }
    },
    "LEG-L35": {
      "id": "LEG-L35",
      "name": "Paillard de frango com limão e ervas + vagem com alho + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "filé fino e grelhado em chapa muito quente; salteada rapidamente, ainda firme; folhas cruas separadas para preservar textura",
      "seasoning_text": "limão, salsa, ervas; alho, pimenta",
      "seasoning_refs": [
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-1A3490590C",
        "SRC-89DE384F5F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão, salsa, ervas; alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 43,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING022",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Paillard de frango com limão e ervas",
            "source_method_ids": [
              "PM-SRC-1A3490590C"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "martelo de carne ou rolo",
              "papel manteiga/filme",
              "grelha/chapa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Achatar o peito entre folhas até espessura uniforme de aproximadamente 0,5 cm."
              },
              {
                "order": 2,
                "instruction": "Misturar alho, ervas, limão, azeite e temperos autorizados; cobrir o frango e marinar sob refrigeração."
              },
              {
                "order": 3,
                "instruction": "Grelhar rapidamente em superfície muito quente, virando uma vez."
              },
              {
                "order": 4,
                "instruction": "Descansar por alguns minutos antes de servir ou fatiar."
              }
            ],
            "source_time_reference": [
              "marinada ≥2 h; fonte: 1–2 min por lado para 0,5 cm"
            ],
            "source_temperature_reference": [
              "grelha/chapa muito quente"
            ],
            "texture_or_doneness_endpoint": [
              "marcas de grelha e centro cozido sem ressecar"
            ],
            "adaptation_guardrails": [
              "O tempo de 1–2 min/lado pressupõe a espessura fina da fonte.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com alho",
            "source_method_ids": [
              "PM-SRC-89DE384F5F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "wok ou frigideira larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer a gordura contabilizada no wok/frigideira."
              },
              {
                "order": 2,
                "instruction": "Saltear a vagem em fogo alto por cerca de 5 min, até começar a dourar e continuar firme."
              },
              {
                "order": 3,
                "instruction": "Adicionar o alho e continuar apenas até o alho começar a dourar."
              },
              {
                "order": 4,
                "instruction": "Adicionar o molho/tempero autorizado no final e servir."
              }
            ],
            "source_time_reference": [
              "fonte: vagem ~5 min antes do alho"
            ],
            "source_temperature_reference": [
              "fogo alto"
            ],
            "texture_or_doneness_endpoint": [
              "vagem al dente com pontos dourados; alho dourado sem queimar"
            ],
            "adaptation_guardrails": [
              "Molho de ostra/soja só entra se estiver autorizado; não adicionar óleo além da porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "filé fino e grelhado em chapa muito quente; salteada rapidamente, ainda firme; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-1A3490590C",
            "PM-SRC-89DE384F5F"
          ]
        }
      }
    },
    "LEG-L36": {
      "id": "LEG-L36",
      "name": "Paillard de frango com limão e ervas + vagem com amêndoas tostadas + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "filé fino e grelhado em chapa muito quente; vagem firme com amêndoas tostadas por cima; folhas cruas separadas para preservar textura",
      "seasoning_text": "limão, salsa, ervas; alho, chalota/cebola em traço, pimenta",
      "seasoning_refs": [
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-1A3490590C",
        "SRC-E309A5D52B"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão, salsa, ervas; alho, chalota/cebola em traço, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 43,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING022",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Paillard de frango com limão e ervas",
            "source_method_ids": [
              "PM-SRC-1A3490590C"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "martelo de carne ou rolo",
              "papel manteiga/filme",
              "grelha/chapa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Achatar o peito entre folhas até espessura uniforme de aproximadamente 0,5 cm."
              },
              {
                "order": 2,
                "instruction": "Misturar alho, ervas, limão, azeite e temperos autorizados; cobrir o frango e marinar sob refrigeração."
              },
              {
                "order": 3,
                "instruction": "Grelhar rapidamente em superfície muito quente, virando uma vez."
              },
              {
                "order": 4,
                "instruction": "Descansar por alguns minutos antes de servir ou fatiar."
              }
            ],
            "source_time_reference": [
              "marinada ≥2 h; fonte: 1–2 min por lado para 0,5 cm"
            ],
            "source_temperature_reference": [
              "grelha/chapa muito quente"
            ],
            "texture_or_doneness_endpoint": [
              "marcas de grelha e centro cozido sem ressecar"
            ],
            "adaptation_guardrails": [
              "O tempo de 1–2 min/lado pressupõe a espessura fina da fonte.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com amêndoas tostadas",
            "source_method_ids": [
              "PM-SRC-E309A5D52B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela",
              "frigideira"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem até al dente, escorrer e secar."
              },
              {
                "order": 2,
                "instruction": "Amaciar cebola/shallot e alho lentamente na gordura prevista sem deixar queimar."
              },
              {
                "order": 3,
                "instruction": "Adicionar a vagem apenas para aquecer e envolver."
              },
              {
                "order": 4,
                "instruction": "Finalizar com limão e amêndoas tostadas; para marmita, manter as amêndoas separadas até servir."
              }
            ],
            "source_time_reference": [
              "fonte: aromáticos ~8 min; vagem cozida previamente"
            ],
            "source_temperature_reference": [
              "calor suave para aromáticos"
            ],
            "texture_or_doneness_endpoint": [
              "vagem firme; amêndoas crocantes"
            ],
            "adaptation_guardrails": [
              "Quantidade de amêndoa e azeite deve seguir a porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir.",
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "filé fino e grelhado em chapa muito quente; vagem firme com amêndoas tostadas por cima; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-1A3490590C",
            "PM-SRC-E309A5D52B"
          ]
        }
      }
    },
    "LEG-L37": {
      "id": "LEG-L37",
      "name": "Frango ao limão e orégano + brócolis assado + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "assado em cubos ou tiras, dourando bem as bordas; forno/air fryer, pontas tostadas; folhas cruas separadas para preservar textura",
      "seasoning_text": "limão, orégano, alho; alho, pimenta, limão opcional",
      "seasoning_refs": [
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-E54E273CF8",
        "SRC-D97E9277C4"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão, orégano, alho; alho, pimenta, limão opcional — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 141,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING018",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING018",
              "raw_state": "Brócolis cru, aparado e pronto para cozinhar",
              "yield_factor": 1.0,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango ao limão e orégano",
            "source_method_ids": [
              "PM-SRC-E54E273CF8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Temperar o frango com limão, orégano e a gordura prevista."
              },
              {
                "order": 2,
                "instruction": "Assar em assadeira quente, deixando espaço entre os pedaços para dourar."
              },
              {
                "order": 3,
                "instruction": "Virar/reorganizar se necessário e retirar quando dourado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte para coxas usa etapas de 20 min e total ~40 min após entrar o frango"
            ],
            "source_temperature_reference": [
              "220°C / 200°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A adaptação normalmente usa peito/cubos e remove batata, bacon, vinho e caldo; portanto o tempo da fonte não é transferível literalmente.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "brócolis assado",
            "source_method_ids": [
              "PM-SRC-D97E9277C4"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar bem o brócolis, misturar com a quantidade de azeite prevista e temperos."
              },
              {
                "order": 2,
                "instruction": "Espalhar em camada única sem amontoar."
              },
              {
                "order": 3,
                "instruction": "Assar até macio no interior e com pontas/bordas tostadas, movimentando a assadeira aproximadamente na metade."
              }
            ],
            "source_time_reference": [
              "25–30 min"
            ],
            "source_temperature_reference": [
              "180°C / 160°C ventilado na fonte"
            ],
            "texture_or_doneness_endpoint": [
              "macio com bordas crocantes/tostadas"
            ],
            "adaptation_guardrails": [
              "Limão/alho entram apenas conforme tempero autorizado.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "assado em cubos ou tiras, dourando bem as bordas; forno/air fryer, pontas tostadas; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E54E273CF8",
            "PM-SRC-D97E9277C4"
          ]
        }
      }
    },
    "LEG-L38": {
      "id": "LEG-L38",
      "name": "Frango ao limão e orégano + vagem com mostarda em grãos + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "assado em cubos ou tiras, dourando bem as bordas; cozida al dente e envolvida em molho leve; folhas cruas separadas para preservar textura",
      "seasoning_text": "limão, orégano, alho; mostarda em grãos, vinagre, pimenta",
      "seasoning_refs": [
        "T021",
        "T004",
        "T098"
      ],
      "source_ids": [
        "SRC-E54E273CF8",
        "SRC-A67220CDDD"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão, orégano, alho; mostarda em grãos, vinagre, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 141,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING022",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango ao limão e orégano",
            "source_method_ids": [
              "PM-SRC-E54E273CF8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Temperar o frango com limão, orégano e a gordura prevista."
              },
              {
                "order": 2,
                "instruction": "Assar em assadeira quente, deixando espaço entre os pedaços para dourar."
              },
              {
                "order": 3,
                "instruction": "Virar/reorganizar se necessário e retirar quando dourado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte para coxas usa etapas de 20 min e total ~40 min após entrar o frango"
            ],
            "source_temperature_reference": [
              "220°C / 200°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A adaptação normalmente usa peito/cubos e remove batata, bacon, vinho e caldo; portanto o tempo da fonte não é transferível literalmente.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com mostarda em grãos",
            "source_method_ids": [
              "PM-SRC-A67220CDDD"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela",
              "frigideira rasa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem em água fervente até ficar verde viva e ainda com leve crocância."
              },
              {
                "order": 2,
                "instruction": "Amaciar o aromático autorizado na gordura prevista; adicionar mostarda e o componente cremoso apenas se houver."
              },
              {
                "order": 3,
                "instruction": "Adicionar vagem escorrida e limão, envolver rapidamente e servir."
              }
            ],
            "source_time_reference": [
              "fonte: vagem 4–5 min"
            ],
            "source_temperature_reference": [
              "fervura para vagem; calor moderado no molho"
            ],
            "texture_or_doneness_endpoint": [
              "vagem al dente, revestida por molho leve"
            ],
            "adaptation_guardrails": [
              "Crème fraîche da fonte pode ser omitido/trocado por iogurte zero lactose somente se isso constar na ficha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "assado em cubos ou tiras, dourando bem as bordas; cozida al dente e envolvida em molho leve; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E54E273CF8",
            "PM-SRC-A67220CDDD"
          ]
        }
      }
    },
    "LEG-L39": {
      "id": "LEG-L39",
      "name": "Frango ao limão e orégano + berinjela com tomate e iogurte + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "assado em cubos ou tiras, dourando bem as bordas; berinjela assada/grelhada; molhos em camadas; folhas cruas separadas para preservar textura",
      "seasoning_text": "limão, orégano, alho; alho, hortelã, pimenta",
      "seasoning_refs": [
        "T028",
        "T034",
        "T021"
      ],
      "source_ids": [
        "SRC-E54E273CF8",
        "SRC-0E25C4C87F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão, orégano, alho; alho, hortelã, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 141,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING020",
            "ING023",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING020",
              "raw_state": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
              "yield_factor": 0.94,
              "yield_source_id": "SRC-YIELD-USDA-AH102",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango ao limão e orégano",
            "source_method_ids": [
              "PM-SRC-E54E273CF8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Temperar o frango com limão, orégano e a gordura prevista."
              },
              {
                "order": 2,
                "instruction": "Assar em assadeira quente, deixando espaço entre os pedaços para dourar."
              },
              {
                "order": 3,
                "instruction": "Virar/reorganizar se necessário e retirar quando dourado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte para coxas usa etapas de 20 min e total ~40 min após entrar o frango"
            ],
            "source_temperature_reference": [
              "220°C / 200°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A adaptação normalmente usa peito/cubos e remove batata, bacon, vinho e caldo; portanto o tempo da fonte não é transferível literalmente.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "berinjela com tomate e iogurte",
            "source_method_ids": [
              "PM-SRC-0E25C4C87F"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "frigideira/grelha ou forno",
              "tigelas para molhos"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Assar/grelhar a berinjela até macia e bem dourada."
              },
              {
                "order": 2,
                "instruction": "Preparar o componente de tomate até concentrar e esfriar levemente."
              },
              {
                "order": 3,
                "instruction": "Preparar o molho de iogurte zero lactose frio com os temperos autorizados."
              },
              {
                "order": 4,
                "instruction": "Montar em camadas apenas ao servir ou manter os molhos separados para marmita."
              }
            ],
            "source_time_reference": [
              "receita-fonte ~30 min total"
            ],
            "source_temperature_reference": [
              "calor alto para a berinjela; molhos em calor suave/frio"
            ],
            "texture_or_doneness_endpoint": [
              "berinjela macia; tomate espesso; iogurte frio e cremoso"
            ],
            "adaptation_guardrails": [
              "Usar apenas quantidades/ingredientes da versão adaptada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir.",
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "assado em cubos ou tiras, dourando bem as bordas; berinjela assada/grelhada; molhos em camadas; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E54E273CF8",
            "PM-SRC-0E25C4C87F"
          ]
        }
      }
    },
    "LEG-L41": {
      "id": "LEG-L41",
      "name": "Frango tikka com iogurte zero lactose + vagem com alho + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "marinado e grelhado/espetado; salteada rapidamente, ainda firme; folhas cruas separadas para preservar textura",
      "seasoning_text": "garam masala/curry, gengibre, alho, limão; alho, pimenta",
      "seasoning_refs": [
        "T028",
        "T099",
        "T021"
      ],
      "source_ids": [
        "SRC-BF10506C58",
        "SRC-89DE384F5F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: garam masala/curry, gengibre, alho, limão; alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 84,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING022",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango tikka com iogurte zero lactose",
            "source_method_ids": [
              "PM-SRC-BF10506C58"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "espetos",
              "grill/forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte e pasta/especiarias tikka autorizadas; envolver os cubos de frango."
              },
              {
                "order": 2,
                "instruction": "Marinar por cerca de 1 h quando possível."
              },
              {
                "order": 3,
                "instruction": "Retirar excesso de marinada, colocar nos espetos e grelhar, virando periodicamente."
              },
              {
                "order": 4,
                "instruction": "Retirar quando bem dourado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte: 15–20 min sob grill médio; marinada opcional ~1 h"
            ],
            "source_temperature_reference": [
              "grill médio"
            ],
            "texture_or_doneness_endpoint": [
              "bordas douradas e centro cozido"
            ],
            "adaptation_guardrails": [
              "Usar iogurte zero lactose; tomate/chapati/salada da fonte não entram salvo se listados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com alho",
            "source_method_ids": [
              "PM-SRC-89DE384F5F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "wok ou frigideira larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer a gordura contabilizada no wok/frigideira."
              },
              {
                "order": 2,
                "instruction": "Saltear a vagem em fogo alto por cerca de 5 min, até começar a dourar e continuar firme."
              },
              {
                "order": 3,
                "instruction": "Adicionar o alho e continuar apenas até o alho começar a dourar."
              },
              {
                "order": 4,
                "instruction": "Adicionar o molho/tempero autorizado no final e servir."
              }
            ],
            "source_time_reference": [
              "fonte: vagem ~5 min antes do alho"
            ],
            "source_temperature_reference": [
              "fogo alto"
            ],
            "texture_or_doneness_endpoint": [
              "vagem al dente com pontos dourados; alho dourado sem queimar"
            ],
            "adaptation_guardrails": [
              "Molho de ostra/soja só entra se estiver autorizado; não adicionar óleo além da porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "marinado e grelhado/espetado; salteada rapidamente, ainda firme; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-BF10506C58",
            "PM-SRC-89DE384F5F"
          ]
        }
      }
    },
    "LEG-L42": {
      "id": "LEG-L42",
      "name": "Frango tikka com iogurte zero lactose + purê de couve-flor + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "marinado e grelhado/espetado; cozida e processada; iogurte zero lactose para cremosidade; folhas cruas separadas para preservar textura",
      "seasoning_text": "garam masala/curry, gengibre, alho, limão; noz-moscada, alho, pimenta",
      "seasoning_refs": [
        "T028",
        "T099",
        "T021"
      ],
      "source_ids": [
        "SRC-BF10506C58",
        "SRC-98F3FC1410"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: garam masala/curry, gengibre, alho, limão; noz-moscada, alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 2,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING019",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING019",
              "raw_state": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
              "yield_factor": 0.98,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango tikka com iogurte zero lactose",
            "source_method_ids": [
              "PM-SRC-BF10506C58"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "espetos",
              "grill/forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte e pasta/especiarias tikka autorizadas; envolver os cubos de frango."
              },
              {
                "order": 2,
                "instruction": "Marinar por cerca de 1 h quando possível."
              },
              {
                "order": 3,
                "instruction": "Retirar excesso de marinada, colocar nos espetos e grelhar, virando periodicamente."
              },
              {
                "order": 4,
                "instruction": "Retirar quando bem dourado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte: 15–20 min sob grill médio; marinada opcional ~1 h"
            ],
            "source_temperature_reference": [
              "grill médio"
            ],
            "texture_or_doneness_endpoint": [
              "bordas douradas e centro cozido"
            ],
            "adaptation_guardrails": [
              "Usar iogurte zero lactose; tomate/chapati/salada da fonte não entram salvo se listados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "purê de couve-flor",
            "source_method_ids": [
              "PM-SRC-98F3FC1410"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "panela ou vaporizador",
              "processador/liquidificador"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a couve-flor até ficar completamente macia."
              },
              {
                "order": 2,
                "instruction": "Escorrer e deixar o vapor sair para evitar purê aguado."
              },
              {
                "order": 3,
                "instruction": "Processar até liso com somente os componentes cremosos/gordura autorizados."
              },
              {
                "order": 4,
                "instruction": "Ajustar temperos e manter aquecido sem ferver vigorosamente."
              }
            ],
            "source_time_reference": [
              "fonte de purê; tempo depende do tamanho dos floretes"
            ],
            "source_temperature_reference": [
              "cozimento até maciez; processar quente"
            ],
            "texture_or_doneness_endpoint": [
              "purê liso, espesso e sem água livre"
            ],
            "adaptation_guardrails": [
              "Usar iogurte zero lactose apenas quando constar; sem farinha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "marinado e grelhado/espetado; cozida e processada; iogurte zero lactose para cremosidade; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-BF10506C58",
            "PM-SRC-98F3FC1410"
          ]
        }
      }
    },
    "LEG-L43": {
      "id": "LEG-L43",
      "name": "Frango souvlaki + vagem com amêndoas tostadas + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "espetos ou cubos muito bem dourados; vagem firme com amêndoas tostadas por cima; folhas cruas separadas para preservar textura",
      "seasoning_text": "limão, alho, orégano; alho, chalota/cebola em traço, pimenta",
      "seasoning_refs": [
        "T002",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-48B8FB322E",
        "SRC-E309A5D52B"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão, alho, orégano; alho, chalota/cebola em traço, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 230,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING022",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango souvlaki",
            "source_method_ids": [
              "PM-SRC-48B8FB322E"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "espetos ou frigideira/grelha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cortar o frango em pedaços uniformes e envolver com limão, alho, orégano/ervas e gordura autorizada."
              },
              {
                "order": 2,
                "instruction": "Marinar quando a ficha permitir."
              },
              {
                "order": 3,
                "instruction": "Grelhar em espetos ou em frigideira bem quente em camada única, virando para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir o molho de iogurte separadamente quando previsto."
              }
            ],
            "source_time_reference": [
              "fonte de família de barbecue/souvlaki; tempo varia com o corte"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "cubos/tiras bem dourados e cozidos"
            ],
            "adaptation_guardrails": [
              "Não usar pão, beterraba ou acompanhamentos da fonte que não constem na alternativa.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com amêndoas tostadas",
            "source_method_ids": [
              "PM-SRC-E309A5D52B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela",
              "frigideira"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem até al dente, escorrer e secar."
              },
              {
                "order": 2,
                "instruction": "Amaciar cebola/shallot e alho lentamente na gordura prevista sem deixar queimar."
              },
              {
                "order": 3,
                "instruction": "Adicionar a vagem apenas para aquecer e envolver."
              },
              {
                "order": 4,
                "instruction": "Finalizar com limão e amêndoas tostadas; para marmita, manter as amêndoas separadas até servir."
              }
            ],
            "source_time_reference": [
              "fonte: aromáticos ~8 min; vagem cozida previamente"
            ],
            "source_temperature_reference": [
              "calor suave para aromáticos"
            ],
            "texture_or_doneness_endpoint": [
              "vagem firme; amêndoas crocantes"
            ],
            "adaptation_guardrails": [
              "Quantidade de amêndoa e azeite deve seguir a porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir.",
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "espetos ou cubos muito bem dourados; vagem firme com amêndoas tostadas por cima; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-48B8FB322E",
            "PM-SRC-E309A5D52B"
          ]
        }
      }
    },
    "LEG-L46": {
      "id": "LEG-L46",
      "name": "Frango gyros + berinjela com tomate e iogurte + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "tiras bem douradas; molho frio separado para marmita; berinjela assada/grelhada; molhos em camadas; folhas cruas separadas para preservar textura",
      "seasoning_text": "orégano, alho, limão, páprica; alho, hortelã, pimenta",
      "seasoning_refs": [
        "T002",
        "T028",
        "T034"
      ],
      "source_ids": [
        "SRC-E18543333B",
        "SRC-0E25C4C87F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: orégano, alho, limão, páprica; alho, hortelã, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.6,
        "best_rating_count": 100,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING020",
            "ING023",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING020",
              "raw_state": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
              "yield_factor": 0.94,
              "yield_source_id": "SRC-YIELD-USDA-AH102",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango gyros",
            "source_method_ids": [
              "PM-SRC-E18543333B"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "espetos ou frigideira/grelha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cortar o frango em pedaços uniformes e envolver com limão, alho, orégano/ervas e gordura autorizada."
              },
              {
                "order": 2,
                "instruction": "Marinar quando a ficha permitir."
              },
              {
                "order": 3,
                "instruction": "Grelhar em espetos ou em frigideira bem quente em camada única, virando para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir o molho de iogurte separadamente quando previsto."
              }
            ],
            "source_time_reference": [
              "fonte de família de barbecue/souvlaki; tempo varia com o corte"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "cubos/tiras bem dourados e cozidos"
            ],
            "adaptation_guardrails": [
              "Não usar pão, beterraba ou acompanhamentos da fonte que não constem na alternativa.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "berinjela com tomate e iogurte",
            "source_method_ids": [
              "PM-SRC-0E25C4C87F"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "frigideira/grelha ou forno",
              "tigelas para molhos"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Assar/grelhar a berinjela até macia e bem dourada."
              },
              {
                "order": 2,
                "instruction": "Preparar o componente de tomate até concentrar e esfriar levemente."
              },
              {
                "order": 3,
                "instruction": "Preparar o molho de iogurte zero lactose frio com os temperos autorizados."
              },
              {
                "order": 4,
                "instruction": "Montar em camadas apenas ao servir ou manter os molhos separados para marmita."
              }
            ],
            "source_time_reference": [
              "receita-fonte ~30 min total"
            ],
            "source_temperature_reference": [
              "calor alto para a berinjela; molhos em calor suave/frio"
            ],
            "texture_or_doneness_endpoint": [
              "berinjela macia; tomate espesso; iogurte frio e cremoso"
            ],
            "adaptation_guardrails": [
              "Usar apenas quantidades/ingredientes da versão adaptada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir.",
          "Embalar molho frio separadamente e adicionar apenas no consumo.",
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "tiras bem douradas; molho frio separado para marmita; berinjela assada/grelhada; molhos em camadas; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 2,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E18543333B",
            "PM-SRC-0E25C4C87F"
          ]
        }
      }
    },
    "LEG-L48": {
      "id": "LEG-L48",
      "name": "Frango gyros + vagem com alho + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "tiras bem douradas; molho frio separado para marmita; salteada rapidamente, ainda firme; folhas cruas separadas para preservar textura",
      "seasoning_text": "orégano, alho, limão, páprica; alho, pimenta",
      "seasoning_refs": [
        "T002",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-E18543333B",
        "SRC-89DE384F5F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: orégano, alho, limão, páprica; alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 24,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING022",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango gyros",
            "source_method_ids": [
              "PM-SRC-E18543333B"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "espetos ou frigideira/grelha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cortar o frango em pedaços uniformes e envolver com limão, alho, orégano/ervas e gordura autorizada."
              },
              {
                "order": 2,
                "instruction": "Marinar quando a ficha permitir."
              },
              {
                "order": 3,
                "instruction": "Grelhar em espetos ou em frigideira bem quente em camada única, virando para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir o molho de iogurte separadamente quando previsto."
              }
            ],
            "source_time_reference": [
              "fonte de família de barbecue/souvlaki; tempo varia com o corte"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "cubos/tiras bem dourados e cozidos"
            ],
            "adaptation_guardrails": [
              "Não usar pão, beterraba ou acompanhamentos da fonte que não constem na alternativa.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com alho",
            "source_method_ids": [
              "PM-SRC-89DE384F5F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "wok ou frigideira larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer a gordura contabilizada no wok/frigideira."
              },
              {
                "order": 2,
                "instruction": "Saltear a vagem em fogo alto por cerca de 5 min, até começar a dourar e continuar firme."
              },
              {
                "order": 3,
                "instruction": "Adicionar o alho e continuar apenas até o alho começar a dourar."
              },
              {
                "order": 4,
                "instruction": "Adicionar o molho/tempero autorizado no final e servir."
              }
            ],
            "source_time_reference": [
              "fonte: vagem ~5 min antes do alho"
            ],
            "source_temperature_reference": [
              "fogo alto"
            ],
            "texture_or_doneness_endpoint": [
              "vagem al dente com pontos dourados; alho dourado sem queimar"
            ],
            "adaptation_guardrails": [
              "Molho de ostra/soja só entra se estiver autorizado; não adicionar óleo além da porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir.",
          "Embalar molho frio separadamente e adicionar apenas no consumo."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "tiras bem douradas; molho frio separado para marmita; salteada rapidamente, ainda firme; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E18543333B",
            "PM-SRC-89DE384F5F"
          ]
        }
      }
    },
    "LEG-L49": {
      "id": "LEG-L49",
      "name": "Frango jerk + berinjela com tomate e iogurte + folhas",
      "category": "lunch",
      "origin": "legacy_docx",
      "method_overview": "marinado e assado/grelhado; berinjela assada/grelhada; molhos em camadas; folhas cruas separadas para preservar textura",
      "seasoning_text": "tomilho, pimenta-da-jamaica, chilli, alho, gengibre; alho, hortelã, pimenta",
      "seasoning_refs": [
        "T101",
        "T028",
        "T034"
      ],
      "source_ids": [
        "SRC-BA7CAF57D8",
        "SRC-0E25C4C87F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Creatina mantida em 6 g, separada da contagem energética.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: tomilho, pimenta-da-jamaica, chilli, alho, gengibre; alho, hortelã, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.3,
        "best_rating_count": 36,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING020",
            "ING023",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028",
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING020",
              "raw_state": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
              "yield_factor": 0.94,
              "yield_source_id": "SRC-YIELD-USDA-AH102",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango jerk",
            "source_method_ids": [
              "PM-SRC-BA7CAF57D8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador ou pilão",
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Processar/misturar os temperos jerk, alho, gengibre, tomilho, pimenta e limão/lima autorizados até formar pasta."
              },
              {
                "order": 2,
                "instruction": "Cobrir o frango uniformemente com a pasta."
              },
              {
                "order": 3,
                "instruction": "Assar ou grelhar até dourar e cozinhar por completo."
              }
            ],
            "source_time_reference": [
              "fonte para coxas com osso: 45–50 min"
            ],
            "source_temperature_reference": [
              "200°C / 180°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado, aromático e cozido"
            ],
            "adaptation_guardrails": [
              "Coconut cream e demais ingredientes da fonte só entram se constarem na adaptação; tempo da coxa não deve ser aplicado ao peito.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "berinjela com tomate e iogurte",
            "source_method_ids": [
              "PM-SRC-0E25C4C87F"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "frigideira/grelha ou forno",
              "tigelas para molhos"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Assar/grelhar a berinjela até macia e bem dourada."
              },
              {
                "order": 2,
                "instruction": "Preparar o componente de tomate até concentrar e esfriar levemente."
              },
              {
                "order": 3,
                "instruction": "Preparar o molho de iogurte zero lactose frio com os temperos autorizados."
              },
              {
                "order": 4,
                "instruction": "Montar em camadas apenas ao servir ou manter os molhos separados para marmita."
              }
            ],
            "source_time_reference": [
              "receita-fonte ~30 min total"
            ],
            "source_temperature_reference": [
              "calor alto para a berinjela; molhos em calor suave/frio"
            ],
            "texture_or_doneness_endpoint": [
              "berinjela macia; tomate espesso; iogurte frio e cremoso"
            ],
            "adaptation_guardrails": [
              "Usar apenas quantidades/ingredientes da versão adaptada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Manter folhas cruas separadas da comida quente e temperar somente ao servir.",
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Creatina mantida em 6 g, separada da contagem energética."
        ],
        "original_method_overview": "marinado e assado/grelhado; berinjela assada/grelhada; molhos em camadas; folhas cruas separadas para preservar textura",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-BA7CAF57D8",
            "PM-SRC-0E25C4C87F"
          ]
        }
      }
    },
    "LEG-SD01": {
      "id": "LEG-SD01",
      "name": "Iogurte proteico gelado instantâneo de morango",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "bater com morango congelado até textura de frozen yogurt",
      "seasoning_text": "adoçante opcional; baunilha em traço",
      "seasoning_refs": [
        "T028"
      ],
      "source_ids": [
        "SRC-02A27AA42E"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: adoçante opcional; baunilha em traço — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 76,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Iogurte proteico gelado instantâneo de morango",
            "source_method_ids": [
              "PM-SRC-02A27AA42E"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador potente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Usar a fruta congelada e o iogurte zero lactose bem frio."
              },
              {
                "order": 2,
                "instruction": "Processar junto com whey/ingredientes autorizados somente até formar textura lisa de sorvete."
              },
              {
                "order": 3,
                "instruction": "Consumir imediatamente para preservar a textura."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 20 s de processamento"
            ],
            "source_temperature_reference": [
              "sem cocção; ingredientes congelados/frios"
            ],
            "texture_or_doneness_endpoint": [
              "textura lisa de sorvete soft, sem derreter"
            ],
            "adaptation_guardrails": [
              "Mel/agave não entra salvo se listado.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "bater com morango congelado até textura de frozen yogurt",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-02A27AA42E"
          ]
        }
      }
    },
    "LEG-SD02": {
      "id": "LEG-SD02",
      "name": "Frozen yogurt proteico de morango",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "bater e congelar; mexer durante congelamento para reduzir cristais",
      "seasoning_text": "baunilha; sem leite condensado",
      "seasoning_refs": [
        "T028"
      ],
      "source_ids": [
        "SRC-4D44157866"
      ],
      "adaptation_notes": "Leite condensado removido; whey zero lactose introduzido para recuperar proteína; porções reescaladas. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: baunilha; sem leite condensado — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 50,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Frozen yogurt proteico de morango",
            "source_method_ids": [
              "PM-SRC-4D44157866"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "liquidificador/processador",
              "recipiente de freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 2,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 3,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 4,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              }
            ],
            "source_time_reference": [
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes"
            ],
            "source_temperature_reference": [
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "cremoso/congelado com cristais pequenos"
            ],
            "adaptation_guardrails": [
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Leite condensado removido; whey zero lactose introduzido para recuperar proteína; porções reescaladas.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "bater e congelar; mexer durante congelamento para reduzir cristais",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-4D44157866"
          ]
        }
      }
    },
    "LEG-SD03": {
      "id": "LEG-SD03",
      "name": "Sundae proteico de iogurte e morango",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "morango amassado em swirl, iogurte e whey misturados; fruta em pedaços",
      "seasoning_text": "baunilha ou canela em traço",
      "seasoning_refs": [
        "T028"
      ],
      "source_ids": [
        "SRC-DE379BFD3B"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: baunilha ou canela em traço — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.3,
        "best_rating_count": 3,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Sundae proteico de iogurte e morango",
            "source_method_ids": [
              "PM-SRC-DE379BFD3B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela/copo",
              "garfo ou mixer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte e whey até formar creme liso."
              },
              {
                "order": 2,
                "instruction": "Amassar/processar parte da fruta em purê e deixar parte em pedaços quando a ficha pedir contraste."
              },
              {
                "order": 3,
                "instruction": "Fazer swirl ou camadas sem homogeneizar totalmente."
              },
              {
                "order": 4,
                "instruction": "Adicionar componentes crocantes somente na hora de servir."
              }
            ],
            "source_time_reference": [
              "montagem imediata, sem cocção"
            ],
            "source_temperature_reference": [
              "frio"
            ],
            "texture_or_doneness_endpoint": [
              "camadas/swirl visíveis e texturas distintas"
            ],
            "adaptation_guardrails": [
              "Usar somente frutas/amêndoas da porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "morango amassado em swirl, iogurte e whey misturados; fruta em pedaços",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-DE379BFD3B"
          ]
        }
      }
    },
    "LEG-SD04": {
      "id": "LEG-SD04",
      "name": "Picolé proteico de morango e iogurte",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "bater, colocar em formas e congelar",
      "seasoning_text": "adoçante opcional",
      "seasoning_refs": [
        "T028"
      ],
      "source_ids": [
        "SRC-20D4788A6F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: adoçante opcional — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 5.0,
        "best_rating_count": 5,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Picolé proteico de morango e iogurte",
            "source_method_ids": [
              "PM-SRC-20D4788A6F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "liquidificador",
              "formas de picolé",
              "freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Processar morango até purê e misturar com iogurte/whey autorizados."
              },
              {
                "order": 2,
                "instruction": "Distribuir nas formas, deixando espaço adequado para o palito."
              },
              {
                "order": 3,
                "instruction": "Congelar até sólido."
              }
            ],
            "source_time_reference": [
              "fonte: pelo menos 4 h de freezer"
            ],
            "source_temperature_reference": [
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "completamente firme"
            ],
            "adaptation_guardrails": [
              "Açúcar/mel da fonte não entra; pequenos pedaços de morango podem ser incorporados quando a ficha pedir textura.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "bater, colocar em formas e congelar",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-20D4788A6F"
          ]
        }
      }
    },
    "LEG-SD05": {
      "id": "LEG-SD05",
      "name": "Parfait proteico de morango",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "camadas de iogurte+whey, morango amassado e crocante mínimo de amêndoa",
      "seasoning_text": "baunilha; biscoito amaretti original removido",
      "seasoning_refs": [
        "T028"
      ],
      "source_ids": [
        "SRC-BFB52B879B"
      ],
      "adaptation_notes": "Amaretti removido para manter carboidratos; whey acrescentado; amêndoa opcional em porção mínima para textura. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: baunilha; biscoito amaretti original removido — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 5.0,
        "best_rating_count": 4,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Parfait proteico de morango",
            "source_method_ids": [
              "PM-SRC-BFB52B879B"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "copo/pote",
              "colher"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção"
            ],
            "source_temperature_reference": [
              "refrigerado"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Amaretti removido para manter carboidratos; whey acrescentado; amêndoa opcional em porção mínima para textura.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "camadas de iogurte+whey, morango amassado e crocante mínimo de amêndoa",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-BFB52B879B"
          ]
        }
      }
    },
    "LEG-SD06": {
      "id": "LEG-SD06",
      "name": "Smoothie proteico de morango e banana",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "bater muito frio; banana usada apenas na fração que cabe no alvo",
      "seasoning_text": "canela em traço",
      "seasoning_refs": [],
      "source_ids": [
        "SRC-8CFAC315C0"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: canela em traço — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.6,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013",
            "ING015",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Smoothie proteico de morango e banana",
            "source_method_ids": [
              "PM-SRC-8CFAC315C0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "liquidificador"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Adicionar fruta, iogurte/whey e demais ingredientes autorizados ao liquidificador."
              },
              {
                "order": 2,
                "instruction": "Bater até ficar completamente liso."
              },
              {
                "order": 3,
                "instruction": "Servir imediatamente bem frio."
              }
            ],
            "source_time_reference": [
              "processar apenas até liso"
            ],
            "source_temperature_reference": [
              "sem cocção; frio"
            ],
            "texture_or_doneness_endpoint": [
              "bebida homogênea sem pedaços grandes"
            ],
            "adaptation_guardrails": [
              "Leite/amêndoa da fonte entram apenas nas quantidades autorizadas.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "bater muito frio; banana usada apenas na fração que cabe no alvo",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-8CFAC315C0"
          ]
        }
      }
    },
    "LEG-SD07": {
      "id": "LEG-SD07",
      "name": "Creme proteico aerado de morango",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "bater iogurte e whey até aerar; incorporar purê de morango sem congelar",
      "seasoning_text": "baunilha",
      "seasoning_refs": [
        "T028"
      ],
      "source_ids": [
        "SRC-02A27AA42E"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: baunilha — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 76,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Creme proteico aerado de morango",
            "source_method_ids": [
              "PM-SRC-02A27AA42E"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador potente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Usar a fruta congelada e o iogurte zero lactose bem frio."
              },
              {
                "order": 2,
                "instruction": "Processar junto com whey/ingredientes autorizados somente até formar textura lisa de sorvete."
              },
              {
                "order": 3,
                "instruction": "Consumir imediatamente para preservar a textura."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 20 s de processamento"
            ],
            "source_temperature_reference": [
              "sem cocção; ingredientes congelados/frios"
            ],
            "texture_or_doneness_endpoint": [
              "textura lisa de sorvete soft, sem derreter"
            ],
            "adaptation_guardrails": [
              "Mel/agave não entra salvo se listado.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "bater iogurte e whey até aerar; incorporar purê de morango sem congelar",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-02A27AA42E"
          ]
        }
      }
    },
    "LEG-SD08": {
      "id": "LEG-SD08",
      "name": "Iogurte proteico com morango macerado",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "macerar o morango com limão; servir sobre creme de iogurte+whey",
      "seasoning_text": "raspas de limão; adoçante opcional",
      "seasoning_refs": [
        "T028",
        "T021"
      ],
      "source_ids": [
        "SRC-DE379BFD3B"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: raspas de limão; adoçante opcional — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.3,
        "best_rating_count": 3,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Iogurte proteico com morango macerado",
            "source_method_ids": [
              "PM-SRC-DE379BFD3B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela/copo",
              "garfo ou mixer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte e whey até formar creme liso."
              },
              {
                "order": 2,
                "instruction": "Amassar/processar parte da fruta em purê e deixar parte em pedaços quando a ficha pedir contraste."
              },
              {
                "order": 3,
                "instruction": "Fazer swirl ou camadas sem homogeneizar totalmente."
              },
              {
                "order": 4,
                "instruction": "Adicionar componentes crocantes somente na hora de servir."
              }
            ],
            "source_time_reference": [
              "montagem imediata, sem cocção"
            ],
            "source_temperature_reference": [
              "frio"
            ],
            "texture_or_doneness_endpoint": [
              "camadas/swirl visíveis e texturas distintas"
            ],
            "adaptation_guardrails": [
              "Usar somente frutas/amêndoas da porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "macerar o morango com limão; servir sobre creme de iogurte+whey",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-DE379BFD3B"
          ]
        }
      }
    },
    "LEG-SD09": {
      "id": "LEG-SD09",
      "name": "Frozen proteico marmorizado de morango",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "congelar creme de iogurte+whey com purê de morango em swirl",
      "seasoning_text": "baunilha",
      "seasoning_refs": [
        "T028"
      ],
      "source_ids": [
        "SRC-4D44157866"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: baunilha — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 50,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Frozen proteico marmorizado de morango",
            "source_method_ids": [
              "PM-SRC-4D44157866"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "liquidificador/processador",
              "recipiente de freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 2,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 3,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 4,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              }
            ],
            "source_time_reference": [
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes"
            ],
            "source_temperature_reference": [
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "cremoso/congelado com cristais pequenos"
            ],
            "adaptation_guardrails": [
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "congelar creme de iogurte+whey com purê de morango em swirl",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-4D44157866"
          ]
        }
      }
    },
    "LEG-SD10": {
      "id": "LEG-SD10",
      "name": "Pote gelado de morango com crocante de amêndoa",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "camadas frias; amêndoa tostada adicionada só ao servir",
      "seasoning_text": "canela ou baunilha",
      "seasoning_refs": [],
      "source_ids": [
        "SRC-BFB52B879B"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: canela ou baunilha — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 5.0,
        "best_rating_count": 4,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Pote gelado de morango com crocante de amêndoa",
            "source_method_ids": [
              "PM-SRC-BFB52B879B"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "copo/pote",
              "colher"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção"
            ],
            "source_temperature_reference": [
              "refrigerado"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "camadas frias; amêndoa tostada adicionada só ao servir",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-BFB52B879B"
          ]
        }
      }
    },
    "LEG-SD11": {
      "id": "LEG-SD11",
      "name": "Iogurte proteico tipo sorbet de morango",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "maior proporção de fruta congelada, processada até textura de sorbet cremoso",
      "seasoning_text": "limão em traço",
      "seasoning_refs": [
        "T028",
        "T021"
      ],
      "source_ids": [
        "SRC-02A27AA42E"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão em traço — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 76,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Iogurte proteico tipo sorbet de morango",
            "source_method_ids": [
              "PM-SRC-02A27AA42E"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador potente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Usar a fruta congelada e o iogurte zero lactose bem frio."
              },
              {
                "order": 2,
                "instruction": "Processar junto com whey/ingredientes autorizados somente até formar textura lisa de sorvete."
              },
              {
                "order": 3,
                "instruction": "Consumir imediatamente para preservar a textura."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 20 s de processamento"
            ],
            "source_temperature_reference": [
              "sem cocção; ingredientes congelados/frios"
            ],
            "texture_or_doneness_endpoint": [
              "textura lisa de sorvete soft, sem derreter"
            ],
            "adaptation_guardrails": [
              "Mel/agave não entra salvo se listado.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "maior proporção de fruta congelada, processada até textura de sorbet cremoso",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-02A27AA42E"
          ]
        }
      }
    },
    "LEG-SD12": {
      "id": "LEG-SD12",
      "name": "Mousse rápida de iogurte, whey e morango",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "bater iogurte+whey até espessar e dobrar morango picado",
      "seasoning_text": "baunilha",
      "seasoning_refs": [
        "T028"
      ],
      "source_ids": [
        "SRC-DE379BFD3B"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: baunilha — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.3,
        "best_rating_count": 3,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Mousse rápida de iogurte, whey e morango",
            "source_method_ids": [
              "PM-SRC-DE379BFD3B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela/copo",
              "garfo ou mixer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte e whey até formar creme liso."
              },
              {
                "order": 2,
                "instruction": "Amassar/processar parte da fruta em purê e deixar parte em pedaços quando a ficha pedir contraste."
              },
              {
                "order": 3,
                "instruction": "Fazer swirl ou camadas sem homogeneizar totalmente."
              },
              {
                "order": 4,
                "instruction": "Adicionar componentes crocantes somente na hora de servir."
              }
            ],
            "source_time_reference": [
              "montagem imediata, sem cocção"
            ],
            "source_temperature_reference": [
              "frio"
            ],
            "texture_or_doneness_endpoint": [
              "camadas/swirl visíveis e texturas distintas"
            ],
            "adaptation_guardrails": [
              "Usar somente frutas/amêndoas da porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "bater iogurte+whey até espessar e dobrar morango picado",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-DE379BFD3B"
          ]
        }
      }
    },
    "LEG-SD13": {
      "id": "LEG-SD13",
      "name": "Creme gelado de morango com canela",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "morango congelado batido com creme proteico",
      "seasoning_text": "canela",
      "seasoning_refs": [],
      "source_ids": [
        "SRC-02A27AA42E"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: canela — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 76,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Creme gelado de morango com canela",
            "source_method_ids": [
              "PM-SRC-02A27AA42E"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador potente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Usar a fruta congelada e o iogurte zero lactose bem frio."
              },
              {
                "order": 2,
                "instruction": "Processar junto com whey/ingredientes autorizados somente até formar textura lisa de sorvete."
              },
              {
                "order": 3,
                "instruction": "Consumir imediatamente para preservar a textura."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 20 s de processamento"
            ],
            "source_temperature_reference": [
              "sem cocção; ingredientes congelados/frios"
            ],
            "texture_or_doneness_endpoint": [
              "textura lisa de sorvete soft, sem derreter"
            ],
            "adaptation_guardrails": [
              "Mel/agave não entra salvo se listado.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "morango congelado batido com creme proteico",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-02A27AA42E"
          ]
        }
      }
    },
    "LEG-SD14": {
      "id": "LEG-SD14",
      "name": "Picolé marmorizado de morango",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "purê de morango e creme proteico colocados sem homogeneizar totalmente",
      "seasoning_text": "baunilha",
      "seasoning_refs": [],
      "source_ids": [
        "SRC-20D4788A6F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: baunilha — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 5.0,
        "best_rating_count": 5,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Picolé marmorizado de morango",
            "source_method_ids": [
              "PM-SRC-20D4788A6F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "liquidificador",
              "formas de picolé",
              "freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Processar morango até purê e misturar com iogurte/whey autorizados."
              },
              {
                "order": 2,
                "instruction": "Distribuir nas formas, deixando espaço adequado para o palito."
              },
              {
                "order": 3,
                "instruction": "Congelar até sólido."
              }
            ],
            "source_time_reference": [
              "fonte: pelo menos 4 h de freezer"
            ],
            "source_temperature_reference": [
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "completamente firme"
            ],
            "adaptation_guardrails": [
              "Açúcar/mel da fonte não entra; pequenos pedaços de morango podem ser incorporados quando a ficha pedir textura.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "purê de morango e creme proteico colocados sem homogeneizar totalmente",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-20D4788A6F"
          ]
        }
      }
    },
    "LEG-SD15": {
      "id": "LEG-SD15",
      "name": "Parfait de morango amassado e creme proteico",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "camadas com duas texturas de morango: purê e cubos",
      "seasoning_text": "raspas de limão",
      "seasoning_refs": [
        "T021"
      ],
      "source_ids": [
        "SRC-BFB52B879B"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: raspas de limão — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 5.0,
        "best_rating_count": 4,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Parfait de morango amassado e creme proteico",
            "source_method_ids": [
              "PM-SRC-BFB52B879B"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "copo/pote",
              "colher"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção"
            ],
            "source_temperature_reference": [
              "refrigerado"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "camadas com duas texturas de morango: purê e cubos",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-BFB52B879B"
          ]
        }
      }
    },
    "LEG-SD16": {
      "id": "LEG-SD16",
      "name": "Smoothie espesso de morango",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "pouco líquido; bater até consistência de colher",
      "seasoning_text": "baunilha",
      "seasoning_refs": [],
      "source_ids": [
        "SRC-8CFAC315C0"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: baunilha — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.6,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Smoothie espesso de morango",
            "source_method_ids": [
              "PM-SRC-8CFAC315C0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "liquidificador"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Adicionar fruta, iogurte/whey e demais ingredientes autorizados ao liquidificador."
              },
              {
                "order": 2,
                "instruction": "Bater até ficar completamente liso."
              },
              {
                "order": 3,
                "instruction": "Servir imediatamente bem frio."
              }
            ],
            "source_time_reference": [
              "processar apenas até liso"
            ],
            "source_temperature_reference": [
              "sem cocção; frio"
            ],
            "texture_or_doneness_endpoint": [
              "bebida homogênea sem pedaços grandes"
            ],
            "adaptation_guardrails": [
              "Leite/amêndoa da fonte entram apenas nas quantidades autorizadas.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "pouco líquido; bater até consistência de colher",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-8CFAC315C0"
          ]
        }
      }
    },
    "LEG-SD17": {
      "id": "LEG-SD17",
      "name": "Frozen yogurt proteico com morango em pedaços",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "metade do morango vira purê; metade permanece em cubos",
      "seasoning_text": "baunilha",
      "seasoning_refs": [
        "T028"
      ],
      "source_ids": [
        "SRC-4D44157866"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: baunilha — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 50,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Frozen yogurt proteico com morango em pedaços",
            "source_method_ids": [
              "PM-SRC-4D44157866"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "liquidificador/processador",
              "recipiente de freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 2,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 3,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 4,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              }
            ],
            "source_time_reference": [
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes"
            ],
            "source_temperature_reference": [
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "cremoso/congelado com cristais pequenos"
            ],
            "adaptation_guardrails": [
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "metade do morango vira purê; metade permanece em cubos",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-4D44157866"
          ]
        }
      }
    },
    "LEG-SD18": {
      "id": "LEG-SD18",
      "name": "Copinho gelado de iogurte e morango",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "montar em copo; morango esmagado no fundo, creme proteico acima",
      "seasoning_text": "limão em traço",
      "seasoning_refs": [
        "T028",
        "T021"
      ],
      "source_ids": [
        "SRC-DE379BFD3B"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão em traço — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.3,
        "best_rating_count": 3,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Copinho gelado de iogurte e morango",
            "source_method_ids": [
              "PM-SRC-DE379BFD3B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela/copo",
              "garfo ou mixer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte e whey até formar creme liso."
              },
              {
                "order": 2,
                "instruction": "Amassar/processar parte da fruta em purê e deixar parte em pedaços quando a ficha pedir contraste."
              },
              {
                "order": 3,
                "instruction": "Fazer swirl ou camadas sem homogeneizar totalmente."
              },
              {
                "order": 4,
                "instruction": "Adicionar componentes crocantes somente na hora de servir."
              }
            ],
            "source_time_reference": [
              "montagem imediata, sem cocção"
            ],
            "source_temperature_reference": [
              "frio"
            ],
            "texture_or_doneness_endpoint": [
              "camadas/swirl visíveis e texturas distintas"
            ],
            "adaptation_guardrails": [
              "Usar somente frutas/amêndoas da porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "montar em copo; morango esmagado no fundo, creme proteico acima",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-DE379BFD3B"
          ]
        }
      }
    },
    "LEG-SD19": {
      "id": "LEG-SD19",
      "name": "Bowl proteico de morango e mamão",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "frutas bem frias batidas parcialmente, mantendo pedaços",
      "seasoning_text": "limão; sem mel",
      "seasoning_refs": [
        "T021"
      ],
      "source_ids": [
        "SRC-643FE5F773"
      ],
      "adaptation_notes": "Mistura tropical original reduzida a mamão em pequena porção + morango; mel removido e whey incluído. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão; sem mel — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 12,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013",
            "ING014"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Bowl proteico de morango e mamão",
            "source_method_ids": [
              "PM-SRC-643FE5F773"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador de alimentos"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Colocar no processador o iogurte e as frutas que serão batidas, usando apenas os ingredientes autorizados pela adaptação."
              },
              {
                "order": 2,
                "instruction": "Processar até atingir a textura desejada: homogênea para creme, ou por menos tempo quando a ficha pede pedaços."
              },
              {
                "order": 3,
                "instruction": "Para a versão bowl/gelada, servir imediatamente; se a preparação for congelada, transferir para recipiente próprio e amolecer brevemente antes de servir."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 15 min de preparo; o método principal é bater e servir/congelar"
            ],
            "source_temperature_reference": [
              "preparo frio"
            ],
            "texture_or_doneness_endpoint": [
              "cremoso; pedaços preservados quando a ficha assim especificar"
            ],
            "adaptation_guardrails": [
              "A fonte usa fruta tropical congelada e mel/maple; na adaptação usar apenas morango/mamão, whey e iogurte zero lactose previstos.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Mistura tropical original reduzida a mamão em pequena porção + morango; mel removido e whey incluído.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "frutas bem frias batidas parcialmente, mantendo pedaços",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-643FE5F773"
          ]
        }
      }
    },
    "LEG-SD20": {
      "id": "LEG-SD20",
      "name": "Creme proteico de morango com mamão em cubos",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "creme de iogurte+whey com fruta fresca em cubos",
      "seasoning_text": "baunilha",
      "seasoning_refs": [
        "T028"
      ],
      "source_ids": [
        "SRC-643FE5F773"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: baunilha — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 12,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013",
            "ING014"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Creme proteico de morango com mamão em cubos",
            "source_method_ids": [
              "PM-SRC-643FE5F773"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador de alimentos"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Colocar no processador o iogurte e as frutas que serão batidas, usando apenas os ingredientes autorizados pela adaptação."
              },
              {
                "order": 2,
                "instruction": "Processar até atingir a textura desejada: homogênea para creme, ou por menos tempo quando a ficha pede pedaços."
              },
              {
                "order": 3,
                "instruction": "Para a versão bowl/gelada, servir imediatamente; se a preparação for congelada, transferir para recipiente próprio e amolecer brevemente antes de servir."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 15 min de preparo; o método principal é bater e servir/congelar"
            ],
            "source_temperature_reference": [
              "preparo frio"
            ],
            "texture_or_doneness_endpoint": [
              "cremoso; pedaços preservados quando a ficha assim especificar"
            ],
            "adaptation_guardrails": [
              "A fonte usa fruta tropical congelada e mel/maple; na adaptação usar apenas morango/mamão, whey e iogurte zero lactose previstos.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "creme de iogurte+whey com fruta fresca em cubos",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-643FE5F773"
          ]
        }
      }
    },
    "LEG-SD21": {
      "id": "LEG-SD21",
      "name": "Frozen proteico de morango com toque de banana",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "banana congelada em pequena quantidade para corpo; morango dominante",
      "seasoning_text": "canela",
      "seasoning_refs": [],
      "source_ids": [
        "SRC-8CFAC315C0"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: canela — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.6,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013",
            "ING015"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Frozen proteico de morango com toque de banana",
            "source_method_ids": [
              "PM-SRC-8CFAC315C0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "liquidificador"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Adicionar fruta, iogurte/whey e demais ingredientes autorizados ao liquidificador."
              },
              {
                "order": 2,
                "instruction": "Bater até ficar completamente liso."
              },
              {
                "order": 3,
                "instruction": "Servir imediatamente bem frio."
              }
            ],
            "source_time_reference": [
              "processar apenas até liso"
            ],
            "source_temperature_reference": [
              "sem cocção; frio"
            ],
            "texture_or_doneness_endpoint": [
              "bebida homogênea sem pedaços grandes"
            ],
            "adaptation_guardrails": [
              "Leite/amêndoa da fonte entram apenas nas quantidades autorizadas.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "banana congelada em pequena quantidade para corpo; morango dominante",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-8CFAC315C0"
          ]
        }
      }
    },
    "LEG-SD22": {
      "id": "LEG-SD22",
      "name": "Iogurte proteico batido com morango e amêndoa",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "bater amêndoa finamente com o creme para textura mais densa",
      "seasoning_text": "canela",
      "seasoning_refs": [
        "T028"
      ],
      "source_ids": [
        "SRC-8CFAC315C0"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: canela — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.6,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Iogurte proteico batido com morango e amêndoa",
            "source_method_ids": [
              "PM-SRC-8CFAC315C0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "liquidificador"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Adicionar fruta, iogurte/whey e demais ingredientes autorizados ao liquidificador."
              },
              {
                "order": 2,
                "instruction": "Bater até ficar completamente liso."
              },
              {
                "order": 3,
                "instruction": "Servir imediatamente bem frio."
              }
            ],
            "source_time_reference": [
              "processar apenas até liso"
            ],
            "source_temperature_reference": [
              "sem cocção; frio"
            ],
            "texture_or_doneness_endpoint": [
              "bebida homogênea sem pedaços grandes"
            ],
            "adaptation_guardrails": [
              "Leite/amêndoa da fonte entram apenas nas quantidades autorizadas.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "bater amêndoa finamente com o creme para textura mais densa",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-8CFAC315C0"
          ]
        }
      }
    },
    "LEG-SD23": {
      "id": "LEG-SD23",
      "name": "Parfait gelado de morango com amêndoa",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "camadas; amêndoa tostada somente na finalização",
      "seasoning_text": "baunilha",
      "seasoning_refs": [],
      "source_ids": [
        "SRC-BFB52B879B"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: baunilha — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 5.0,
        "best_rating_count": 4,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Parfait gelado de morango com amêndoa",
            "source_method_ids": [
              "PM-SRC-BFB52B879B"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "copo/pote",
              "colher"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção"
            ],
            "source_temperature_reference": [
              "refrigerado"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "camadas; amêndoa tostada somente na finalização",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-BFB52B879B"
          ]
        }
      }
    },
    "LEG-SD24": {
      "id": "LEG-SD24",
      "name": "Picolé proteico de morango com swirl",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "parte do purê misturada e parte adicionada em swirl antes de congelar",
      "seasoning_text": "raspas de limão",
      "seasoning_refs": [
        "T021"
      ],
      "source_ids": [
        "SRC-20D4788A6F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: raspas de limão — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 5.0,
        "best_rating_count": 5,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Picolé proteico de morango com swirl",
            "source_method_ids": [
              "PM-SRC-20D4788A6F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "liquidificador",
              "formas de picolé",
              "freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Processar morango até purê e misturar com iogurte/whey autorizados."
              },
              {
                "order": 2,
                "instruction": "Distribuir nas formas, deixando espaço adequado para o palito."
              },
              {
                "order": 3,
                "instruction": "Congelar até sólido."
              }
            ],
            "source_time_reference": [
              "fonte: pelo menos 4 h de freezer"
            ],
            "source_temperature_reference": [
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "completamente firme"
            ],
            "adaptation_guardrails": [
              "Açúcar/mel da fonte não entra; pequenos pedaços de morango podem ser incorporados quando a ficha pedir textura.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "parte do purê misturada e parte adicionada em swirl antes de congelar",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-20D4788A6F"
          ]
        }
      }
    },
    "LEG-SD25": {
      "id": "LEG-SD25",
      "name": "Frozen proteico de morango em textura soft-serve",
      "category": "afternoon_snack_sweet",
      "origin": "legacy_docx",
      "method_overview": "processar fruta congelada e consumir imediatamente, sem recongelar",
      "seasoning_text": "baunilha",
      "seasoning_refs": [],
      "source_ids": [
        "SRC-02A27AA42E"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: baunilha — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 76,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Frozen proteico de morango em textura soft-serve",
            "source_method_ids": [
              "PM-SRC-02A27AA42E"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador potente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Usar a fruta congelada e o iogurte zero lactose bem frio."
              },
              {
                "order": 2,
                "instruction": "Processar junto com whey/ingredientes autorizados somente até formar textura lisa de sorvete."
              },
              {
                "order": 3,
                "instruction": "Consumir imediatamente para preservar a textura."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 20 s de processamento"
            ],
            "source_temperature_reference": [
              "sem cocção; ingredientes congelados/frios"
            ],
            "texture_or_doneness_endpoint": [
              "textura lisa de sorvete soft, sem derreter"
            ],
            "adaptation_guardrails": [
              "Mel/agave não entra salvo se listado.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Iogurte deve ser versão zero lactose e o whey é o mesmo produto do plano original."
        ],
        "original_method_overview": "processar fruta congelada e consumir imediatamente, sem recongelar",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-02A27AA42E"
          ]
        }
      }
    },
    "LEG-SS01": {
      "id": "LEG-SS01",
      "name": "Strogonoff de carne com cogumelos e iogurte zero lactose - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "carne selada; molho curto; iogurte entra fora do fogo",
      "seasoning_text": "mostarda, páprica, pimenta",
      "seasoning_refs": [
        "T028",
        "T046",
        "T004"
      ],
      "source_ids": [
        "SRC-C1DE9F5FD9"
      ],
      "adaptation_notes": "Creme original reduzido/substituído por iogurte zero lactose; sem acompanhamento amiláceo; porções reescaladas. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: mostarda, páprica, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 343,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Strogonoff de carne com cogumelos e iogurte zero lactose - porção de lanche",
            "source_method_ids": [
              "PM-SRC-C1DE9F5FD9"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar cebola e alho; dourar cogumelos separadamente para perderem água."
              },
              {
                "order": 2,
                "instruction": "Secar/temperar a carne e selar rapidamente em frigideira quente sem lotar."
              },
              {
                "order": 3,
                "instruction": "Reunir os componentes e reduzir o molho curto com mostarda/caldo/tomate apenas quando previstos."
              },
              {
                "order": 4,
                "instruction": "Retirar do calor forte e incorporar o iogurte zero lactose da adaptação para manter cremosidade sem talhar."
              }
            ],
            "source_time_reference": [
              "fonte: cebola ~15 min; alho 2–3 min; cogumelos ~5 min; carne 3–4 min; molho ~5 min"
            ],
            "source_temperature_reference": [
              "frigideira quente para selar; calor médio/baixo no molho"
            ],
            "texture_or_doneness_endpoint": [
              "carne dourada; cogumelos sem excesso de líquido; molho cremoso e curto"
            ],
            "adaptation_guardrails": [
              "A fonte usa farinha/crème fraîche; omitir farinha e trocar o lácteo conforme a adaptação.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Creme original reduzido/substituído por iogurte zero lactose; sem acompanhamento amiláceo; porções reescaladas.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "carne selada; molho curto; iogurte entra fora do fogo",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-C1DE9F5FD9"
          ]
        }
      }
    },
    "LEG-SS02": {
      "id": "LEG-SS02",
      "name": "Carne ao curry - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "cozimento úmido curto até molho aderente",
      "seasoning_text": "curry, cominho, coentro, gengibre, alho",
      "seasoning_refs": [
        "T099"
      ],
      "source_ids": [
        "SRC-419B2CE79F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: curry, cominho, coentro, gengibre, alho — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.6,
        "best_rating_count": 80,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Carne ao curry - porção de lanche",
            "source_method_ids": [
              "PM-SRC-419B2CE79F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela larga",
              "colher de pau/espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer parte da gordura prevista e dourar a carne moída em fogo alto, quebrando os grumos; retirar e reservar quando bem colorida."
              },
              {
                "order": 2,
                "instruction": "Na mesma panela, amaciar cebola, alho e gengibre autorizados até ficarem macios."
              },
              {
                "order": 3,
                "instruction": "Adicionar curry/especiarias e cozinhar brevemente para liberar aroma."
              },
              {
                "order": 4,
                "instruction": "Juntar tomate/líquido apenas nas quantidades autorizadas e retornar a carne; cozinhar em fogo médio até o molho curto aderir à carne."
              },
              {
                "order": 5,
                "instruction": "Finalizar com ervas ou iogurte somente quando previstos na versão adaptada."
              }
            ],
            "source_time_reference": [
              "fonte: dourar a carne; aromáticos ~8 min; depois ~20 min em fogo médio com os componentes do curry"
            ],
            "source_temperature_reference": [
              "fogo alto para dourar; médio para terminar"
            ],
            "texture_or_doneness_endpoint": [
              "carne bem dourada, grumos soltos e molho reduzido/aderente"
            ],
            "adaptation_guardrails": [
              "Batata, cenoura, arroz e chutney da fonte são omitidos; água/caldo é reduzido na adaptação para manter o curry curto.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "cozimento úmido curto até molho aderente",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-419B2CE79F"
          ]
        }
      }
    },
    "LEG-SS03": {
      "id": "LEG-SS03",
      "name": "Ragù de carne e tomate - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "carne bem dourada e molho de tomate reduzido",
      "seasoning_text": "alho, manjericão, orégano, pimenta",
      "seasoning_refs": [
        "T036",
        "T034",
        "T098"
      ],
      "source_ids": [
        "SRC-B1518DE66A"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: alho, manjericão, orégano, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Ragù de carne e tomate - porção de lanche",
            "source_method_ids": [
              "PM-SRC-B1518DE66A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela pesada",
              "frigideira auxiliar opcional",
              "colher"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar aromáticos autorizados; em paralelo, dourar a carne moída em lotes para não cozinhar no próprio vapor."
              },
              {
                "order": 2,
                "instruction": "Juntar carne e aromáticos, adicionar tomate/purê autorizados e levar a fogo baixo."
              },
              {
                "order": 3,
                "instruction": "Cozinhar lentamente até o molho reduzir e concentrar; mexer ocasionalmente."
              },
              {
                "order": 4,
                "instruction": "Finalizar com ervas/queijo apenas se previstos na adaptação."
              }
            ],
            "source_time_reference": [
              "fonte: base de carne/tomate 1½–2 h em fogo muito baixo, seguida de ~30 min após adição final de lácteo"
            ],
            "source_temperature_reference": [
              "dourar em fogo médio-alto; reduzir em fogo muito baixo"
            ],
            "texture_or_doneness_endpoint": [
              "carne bem dourada e molho denso, sem água livre"
            ],
            "adaptation_guardrails": [
              "A versão sem massa omite spaghetti/mascarpone; leite e outros vegetais só entram se estiverem listados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "carne bem dourada e molho de tomate reduzido",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-B1518DE66A"
          ]
        }
      }
    },
    "LEG-SS04": {
      "id": "LEG-SS04",
      "name": "Bolonhesa sem massa - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "carne moída em molho longo de tomate; servida com vegetal",
      "seasoning_text": "alho, ervas italianas, pimenta",
      "seasoning_refs": [
        "T044",
        "T034",
        "T098"
      ],
      "source_ids": [
        "SRC-A3A876CA09"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: alho, ervas italianas, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 1207,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Bolonhesa sem massa - porção de lanche",
            "source_method_ids": [
              "PM-SRC-A3A876CA09"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "panela pesada",
              "colher"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar a carne moída e amaciar os aromáticos previstos."
              },
              {
                "order": 2,
                "instruction": "Adicionar tomate e temperos autorizados, raspar o fundo da panela e levar a fervura suave."
              },
              {
                "order": 3,
                "instruction": "Cozinhar lentamente até reduzir e desenvolver sabor; servir sem massa quando a ficha disser “sem massa”."
              }
            ],
            "source_time_reference": [
              "receita-fonte de bolonhesa longa (~2 h total)"
            ],
            "source_temperature_reference": [
              "fogo baixo após dourar"
            ],
            "texture_or_doneness_endpoint": [
              "molho espesso e carne macia"
            ],
            "adaptation_guardrails": [
              "Massa, vinho e demais ingredientes da fonte são omitidos se não constarem na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "carne moída em molho longo de tomate; servida com vegetal",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A3A876CA09"
          ]
        }
      }
    },
    "LEG-SS05": {
      "id": "LEG-SS05",
      "name": "Kofta bovina com molho de iogurte e hortelã - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "formato de kofta; grelha/air fryer; molho frio de iogurte",
      "seasoning_text": "cominho, coentro, hortelã, alho",
      "seasoning_refs": [
        "T028"
      ],
      "source_ids": [
        "SRC-E9D3F66FB7"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: cominho, coentro, hortelã, alho — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 95,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008",
            "ING024"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Kofta bovina com molho de iogurte e hortelã - porção de lanche",
            "source_method_ids": [
              "PM-SRC-E9D3F66FB7"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "frigideira antiaderente",
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne crua moída com os temperos/aromáticos autorizados e moldar pequenas koftas ovais."
              },
              {
                "order": 2,
                "instruction": "Selar em lotes na frigideira; a fonte usa 2–3 min nesta etapa."
              },
              {
                "order": 3,
                "instruction": "Transferir para assadeira e terminar no forno; a fonte usa 200°C/180°C ventilado por 10 min."
              },
              {
                "order": 4,
                "instruction": "Preparar o molho de iogurte/hortelã somente com os ingredientes autorizados e servir separado ou sobre as koftas. A gramagem desta página já deve ser pesada antes da cocção; não é necessário repesar para porcionar."
              }
            ],
            "source_time_reference": [
              "fonte: frigideira 2–3 min; forno 10 min"
            ],
            "source_temperature_reference": [
              "200°C / 180°C ventilado para finalizar"
            ],
            "texture_or_doneness_endpoint": [
              "koftas seladas por fora e totalmente cozidas no centro"
            ],
            "adaptation_guardrails": [
              "Chutney, flatbread e acompanhamentos não entram se não constarem da alternativa; usar iogurte zero lactose quando previsto.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "formato de kofta; grelha/air fryer; molho frio de iogurte",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E9D3F66FB7"
          ]
        }
      }
    },
    "LEG-SS06": {
      "id": "LEG-SS06",
      "name": "Kofte marroquino ao tomate - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "almôndegas/koftas douradas e finalizadas no molho",
      "seasoning_text": "cominho, páprica, canela em traço, coentro",
      "seasoning_refs": [
        "T034"
      ],
      "source_ids": [
        "SRC-8E365AEB6D"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: cominho, páprica, canela em traço, coentro — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 42,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008",
            "ING024"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.65,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Kofte marroquino ao tomate - porção de lanche",
            "source_method_ids": [
              "PM-SRC-8E365AEB6D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "espetos",
              "grill/churrasqueira",
              "panela para molho"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne crua moída com cebola/ervas/especiarias autorizadas e moldar cilindros uniformes em espetos."
              },
              {
                "order": 2,
                "instruction": "Reduzir o molho de tomate/harissa autorizado por 15–20 min ou até espesso."
              },
              {
                "order": 3,
                "instruction": "Grelhar as koftas por cerca de 6–8 min no total, virando, até douradas e cozidas no centro."
              },
              {
                "order": 4,
                "instruction": "porcionar pelo peso cru indicado antes da cocção e aplicar apenas os molhos previstos na alternativa."
              }
            ],
            "source_time_reference": [
              "fonte: molho 15–20 min; koftas 6–8 min"
            ],
            "source_temperature_reference": [
              "grill quente; molho em fervura suave"
            ],
            "texture_or_doneness_endpoint": [
              "koftas douradas e cozidas no centro"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir iogurte, pinoli, açúcar ou acompanhamentos quando não autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "almôndegas/koftas douradas e finalizadas no molho",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-8E365AEB6D"
          ]
        }
      }
    },
    "LEG-SS07": {
      "id": "LEG-SS07",
      "name": "Hambúrguer kofta caseiro - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "hambúrguer moldado, chapa ou air fryer; sem pão",
      "seasoning_text": "cominho, coentro, salsa, alho",
      "seasoning_refs": [],
      "source_ids": [
        "SRC-31F2558DC1"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: cominho, coentro, salsa, alho — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.6,
        "best_rating_count": 53,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008",
            "ING024"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Hambúrguer kofta caseiro - porção de lanche",
            "source_method_ids": [
              "PM-SRC-31F2558DC1"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "grelha/chapa ou air fryer",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne moída com as especiarias/ervas autorizadas até distribuir uniformemente, sem compactar em excesso."
              },
              {
                "order": 2,
                "instruction": "Moldar em cilindros, koftas, discos ou espetos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Grelhar/chapear ou usar air fryer, virando quando necessário para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir molho de iogurte/hortelã separado quando previsto; em versões ao tomate, terminar as koftas no molho reduzido."
              }
            ],
            "source_time_reference": [
              "fontes de kofta: normalmente ~20–50 min total conforme receita/formato"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente; molho em fervura suave"
            ],
            "texture_or_doneness_endpoint": [
              "superfície bem dourada; centro cozido; molho reduzido quando aplicável"
            ],
            "adaptation_guardrails": [
              "As fontes frequentemente usam cordeiro/pão; aqui manter a carne e ingredientes da nossa porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "hambúrguer moldado, chapa ou air fryer; sem pão",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-31F2558DC1"
          ]
        }
      }
    },
    "LEG-SS08": {
      "id": "LEG-SS08",
      "name": "Almôndegas ao strogonoff - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "almôndegas assadas/air fryer e finalizadas no molho",
      "seasoning_text": "mostarda, páprica, pimenta",
      "seasoning_refs": [
        "T004",
        "T098"
      ],
      "source_ids": [
        "SRC-567AB4BDA3"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: mostarda, páprica, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 64,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Almôndegas ao strogonoff - porção de lanche",
            "source_method_ids": [
              "PM-SRC-567AB4BDA3"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "frigideira larga com tampa",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Temperar a carne crua moída autorizada e moldar almôndegas uniformes, sem compactar excessivamente."
              },
              {
                "order": 2,
                "instruction": "Dourar as almôndegas em todos os lados e reservar."
              },
              {
                "order": 3,
                "instruction": "Amaciar a cebola; adicionar alho e cogumelos e cozinhar até começarem a dourar."
              },
              {
                "order": 4,
                "instruction": "Adicionar os componentes de molho autorizados e cozinhar brevemente para retirar sabor cru; acrescentar o líquido permitido aos poucos."
              },
              {
                "order": 5,
                "instruction": "Retornar as almôndegas, tampar e cozinhar em fervura suave até o centro estar cozido; a fonte usa 15 min."
              },
              {
                "order": 6,
                "instruction": "Incorporar o iogurte/lácteo adaptado fora de fervura forte. A gramagem desta página já deve ser pesada antes da cocção; não é necessário repesar para porcionar."
              }
            ],
            "source_time_reference": [
              "fonte: ~15 min de fervura suave das almôndegas no molho após dourar"
            ],
            "source_temperature_reference": [
              "fogo médio para dourar; fervura suave para finalizar"
            ],
            "texture_or_doneness_endpoint": [
              "almôndegas douradas, cozidas no centro e molho cremoso"
            ],
            "adaptation_guardrails": [
              "A farinha, creme azedo e acompanhamentos da fonte não entram automaticamente. Usar apenas os componentes autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "almôndegas assadas/air fryer e finalizadas no molho",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-567AB4BDA3"
          ]
        }
      }
    },
    "LEG-SS09": {
      "id": "LEG-SS09",
      "name": "Carne de panela leve - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "pressão/cozimento lento; molho reduzido, sem farinha",
      "seasoning_text": "louro, alho, pimenta, tomilho",
      "seasoning_refs": [
        "T098"
      ],
      "source_ids": [
        "SRC-5F8FE8416C"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: louro, alho, pimenta, tomilho — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 682,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Carne de panela leve - porção de lanche",
            "source_method_ids": [
              "PM-SRC-5F8FE8416C"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira",
              "panela de cozimento lento ou panela pesada"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar cebola/aromáticos autorizados e preparar a base do molho."
              },
              {
                "order": 2,
                "instruction": "Dourar a carne em lotes antes do cozimento lento para obter sabor de Maillard."
              },
              {
                "order": 3,
                "instruction": "Transferir para cozimento lento com os líquidos/temperos autorizados e cozinhar até a carne ficar muito macia."
              },
              {
                "order": 4,
                "instruction": "Se o molho estiver ralo, reduzir em panela aberta; a adaptação não usa farinha/amido quando não listado."
              }
            ],
            "source_time_reference": [
              "fonte: 8–10 h em low ou ~4 h em high"
            ],
            "source_temperature_reference": [
              "slow cooker low/high; selagem em frigideira quente"
            ],
            "texture_or_doneness_endpoint": [
              "carne muito macia; molho reduzido e aderente"
            ],
            "adaptation_guardrails": [
              "Omitir cenoura/celery/cornflour e outros itens não listados; pode usar pressão/cozimento lento equivalente conforme ficha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "pressão/cozimento lento; molho reduzido, sem farinha",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-5F8FE8416C"
          ]
        }
      }
    },
    "LEG-SS10": {
      "id": "LEG-SS10",
      "name": "Carne com cebola estilo pot-roast - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "cozimento lento com cebola bem dourada",
      "seasoning_text": "tomilho, alho, pimenta",
      "seasoning_refs": [
        "T098"
      ],
      "source_ids": [
        "SRC-D0DC37E945"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: tomilho, alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 210,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Carne com cebola estilo pot-roast - porção de lanche",
            "source_method_ids": [
              "PM-SRC-D0DC37E945"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "panela pesada com tampa ou slow cooker",
              "frigideira"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar bem a carne e retirar."
              },
              {
                "order": 2,
                "instruction": "Cozinhar a cebola até bem caramelizada/dourada, aproveitando o fundo da panela."
              },
              {
                "order": 3,
                "instruction": "Retornar a carne com o líquido/temperos autorizados e cozinhar lentamente, tampado, até macia."
              },
              {
                "order": 4,
                "instruction": "Retirar a carne, descansar/fatiar e reduzir o molho de cebola se necessário."
              }
            ],
            "source_time_reference": [
              "fonte de pot-roast/cozimento lento; tempo depende do corte e equipamento"
            ],
            "source_temperature_reference": [
              "selagem alta; cozimento baixo e lento"
            ],
            "texture_or_doneness_endpoint": [
              "carne macia; cebola bem dourada; molho concentrado"
            ],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da gravy original que não estejam autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "cozimento lento com cebola bem dourada",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-D0DC37E945"
          ]
        }
      }
    },
    "LEG-SS11": {
      "id": "LEG-SS11",
      "name": "Frango churrasco de limão e alho - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "grelhado em filé ou cubos; sem fritura por imersão",
      "seasoning_text": "limão, alho, páprica, pimenta",
      "seasoning_refs": [
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-EC9CFA9DDA"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão, alho, páprica, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.9,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango churrasco de limão e alho - porção de lanche",
            "source_method_ids": [
              "PM-SRC-EC9CFA9DDA"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela não metálica",
              "grelha/chapa ou grill",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro."
              },
              {
                "order": 3,
                "instruction": "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada."
              },
              {
                "order": 4,
                "instruction": "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h"
            ],
            "source_temperature_reference": [
              "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido"
            ],
            "texture_or_doneness_endpoint": [
              "bem dourado por fora e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
              "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "grelhado em filé ou cubos; sem fritura por imersão",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-EC9CFA9DDA"
          ]
        }
      }
    },
    "LEG-SS12": {
      "id": "LEG-SS12",
      "name": "Paillard de frango com limão e ervas - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "filé fino e grelhado em chapa muito quente",
      "seasoning_text": "limão, salsa, ervas",
      "seasoning_refs": [
        "T021"
      ],
      "source_ids": [
        "SRC-1A3490590C"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão, salsa, ervas — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 43,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Paillard de frango com limão e ervas - porção de lanche",
            "source_method_ids": [
              "PM-SRC-1A3490590C"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "martelo de carne ou rolo",
              "papel manteiga/filme",
              "grelha/chapa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Achatar o peito entre folhas até espessura uniforme de aproximadamente 0,5 cm."
              },
              {
                "order": 2,
                "instruction": "Misturar alho, ervas, limão, azeite e temperos autorizados; cobrir o frango e marinar sob refrigeração."
              },
              {
                "order": 3,
                "instruction": "Grelhar rapidamente em superfície muito quente, virando uma vez."
              },
              {
                "order": 4,
                "instruction": "Descansar por alguns minutos antes de servir ou fatiar."
              }
            ],
            "source_time_reference": [
              "marinada ≥2 h; fonte: 1–2 min por lado para 0,5 cm"
            ],
            "source_temperature_reference": [
              "grelha/chapa muito quente"
            ],
            "texture_or_doneness_endpoint": [
              "marcas de grelha e centro cozido sem ressecar"
            ],
            "adaptation_guardrails": [
              "O tempo de 1–2 min/lado pressupõe a espessura fina da fonte.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "filé fino e grelhado em chapa muito quente",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-1A3490590C"
          ]
        }
      }
    },
    "LEG-SS13": {
      "id": "LEG-SS13",
      "name": "Frango ao limão e orégano - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "assado em cubos ou tiras, dourando bem as bordas",
      "seasoning_text": "limão, orégano, alho",
      "seasoning_refs": [
        "T021"
      ],
      "source_ids": [
        "SRC-E54E273CF8"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão, orégano, alho — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 141,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango ao limão e orégano - porção de lanche",
            "source_method_ids": [
              "PM-SRC-E54E273CF8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Temperar o frango com limão, orégano e a gordura prevista."
              },
              {
                "order": 2,
                "instruction": "Assar em assadeira quente, deixando espaço entre os pedaços para dourar."
              },
              {
                "order": 3,
                "instruction": "Virar/reorganizar se necessário e retirar quando dourado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte para coxas usa etapas de 20 min e total ~40 min após entrar o frango"
            ],
            "source_temperature_reference": [
              "220°C / 200°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A adaptação normalmente usa peito/cubos e remove batata, bacon, vinho e caldo; portanto o tempo da fonte não é transferível literalmente.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "assado em cubos ou tiras, dourando bem as bordas",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E54E273CF8"
          ]
        }
      }
    },
    "LEG-SS14": {
      "id": "LEG-SS14",
      "name": "Frango tikka com iogurte zero lactose - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "marinado e grelhado/espetado",
      "seasoning_text": "garam masala/curry, gengibre, alho, limão",
      "seasoning_refs": [
        "T028",
        "T099",
        "T021"
      ],
      "source_ids": [
        "SRC-BF10506C58"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: garam masala/curry, gengibre, alho, limão — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 84,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango tikka com iogurte zero lactose - porção de lanche",
            "source_method_ids": [
              "PM-SRC-BF10506C58"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "espetos",
              "grill/forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte e pasta/especiarias tikka autorizadas; envolver os cubos de frango."
              },
              {
                "order": 2,
                "instruction": "Marinar por cerca de 1 h quando possível."
              },
              {
                "order": 3,
                "instruction": "Retirar excesso de marinada, colocar nos espetos e grelhar, virando periodicamente."
              },
              {
                "order": 4,
                "instruction": "Retirar quando bem dourado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte: 15–20 min sob grill médio; marinada opcional ~1 h"
            ],
            "source_temperature_reference": [
              "grill médio"
            ],
            "texture_or_doneness_endpoint": [
              "bordas douradas e centro cozido"
            ],
            "adaptation_guardrails": [
              "Usar iogurte zero lactose; tomate/chapati/salada da fonte não entram salvo se listados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "marinado e grelhado/espetado",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-BF10506C58"
          ]
        }
      }
    },
    "LEG-SS15": {
      "id": "LEG-SS15",
      "name": "Frango souvlaki - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "espetos ou cubos muito bem dourados",
      "seasoning_text": "limão, alho, orégano",
      "seasoning_refs": [
        "T002",
        "T021"
      ],
      "source_ids": [
        "SRC-48B8FB322E"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão, alho, orégano — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 230,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango souvlaki - porção de lanche",
            "source_method_ids": [
              "PM-SRC-48B8FB322E"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "espetos ou frigideira/grelha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cortar o frango em pedaços uniformes e envolver com limão, alho, orégano/ervas e gordura autorizada."
              },
              {
                "order": 2,
                "instruction": "Marinar quando a ficha permitir."
              },
              {
                "order": 3,
                "instruction": "Grelhar em espetos ou em frigideira bem quente em camada única, virando para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir o molho de iogurte separadamente quando previsto."
              }
            ],
            "source_time_reference": [
              "fonte de família de barbecue/souvlaki; tempo varia com o corte"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "cubos/tiras bem dourados e cozidos"
            ],
            "adaptation_guardrails": [
              "Não usar pão, beterraba ou acompanhamentos da fonte que não constem na alternativa.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "espetos ou cubos muito bem dourados",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-48B8FB322E"
          ]
        }
      }
    },
    "LEG-SS16": {
      "id": "LEG-SS16",
      "name": "Frango gyros - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "tiras bem douradas; molho frio separado para marmita",
      "seasoning_text": "orégano, alho, limão, páprica",
      "seasoning_refs": [
        "T002",
        "T021"
      ],
      "source_ids": [
        "SRC-E18543333B"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: orégano, alho, limão, páprica — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.6,
        "best_rating_count": 100,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango gyros - porção de lanche",
            "source_method_ids": [
              "PM-SRC-E18543333B"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "espetos ou frigideira/grelha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cortar o frango em pedaços uniformes e envolver com limão, alho, orégano/ervas e gordura autorizada."
              },
              {
                "order": 2,
                "instruction": "Marinar quando a ficha permitir."
              },
              {
                "order": 3,
                "instruction": "Grelhar em espetos ou em frigideira bem quente em camada única, virando para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir o molho de iogurte separadamente quando previsto."
              }
            ],
            "source_time_reference": [
              "fonte de família de barbecue/souvlaki; tempo varia com o corte"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "cubos/tiras bem dourados e cozidos"
            ],
            "adaptation_guardrails": [
              "Não usar pão, beterraba ou acompanhamentos da fonte que não constem na alternativa.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Embalar molho frio separadamente e adicionar apenas no consumo."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "tiras bem douradas; molho frio separado para marmita",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E18543333B"
          ]
        }
      }
    },
    "LEG-SS17": {
      "id": "LEG-SS17",
      "name": "Frango jerk - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "marinado e assado/grelhado",
      "seasoning_text": "tomilho, pimenta-da-jamaica, chilli, alho, gengibre",
      "seasoning_refs": [
        "T101",
        "T098"
      ],
      "source_ids": [
        "SRC-BA7CAF57D8"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: tomilho, pimenta-da-jamaica, chilli, alho, gengibre — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.3,
        "best_rating_count": 36,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango jerk - porção de lanche",
            "source_method_ids": [
              "PM-SRC-BA7CAF57D8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador ou pilão",
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Processar/misturar os temperos jerk, alho, gengibre, tomilho, pimenta e limão/lima autorizados até formar pasta."
              },
              {
                "order": 2,
                "instruction": "Cobrir o frango uniformemente com a pasta."
              },
              {
                "order": 3,
                "instruction": "Assar ou grelhar até dourar e cozinhar por completo."
              }
            ],
            "source_time_reference": [
              "fonte para coxas com osso: 45–50 min"
            ],
            "source_temperature_reference": [
              "200°C / 180°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado, aromático e cozido"
            ],
            "adaptation_guardrails": [
              "Coconut cream e demais ingredientes da fonte só entram se constarem na adaptação; tempo da coxa não deve ser aplicado ao peito.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "marinado e assado/grelhado",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-BA7CAF57D8"
          ]
        }
      }
    },
    "LEG-SS18": {
      "id": "LEG-SS18",
      "name": "Frango ao curry - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "cubos em molho reduzido; sem leite de coco",
      "seasoning_text": "curry, cominho, gengibre, alho",
      "seasoning_refs": [
        "T099"
      ],
      "source_ids": [
        "SRC-5F81012DF2"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: curry, cominho, gengibre, alho — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 360,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango ao curry - porção de lanche",
            "source_method_ids": [
              "PM-SRC-5F81012DF2"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira/panela larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar cebola e aromáticos; adicionar alho/gengibre e cozinhar brevemente."
              },
              {
                "order": 2,
                "instruction": "Adicionar o frango e dourar os cubos."
              },
              {
                "order": 3,
                "instruction": "Adicionar especiarias/pasta e os componentes de molho autorizados; cozinhar em fervura suave até o molho reduzir e aderir."
              },
              {
                "order": 4,
                "instruction": "Quando houver iogurte na adaptação, incorporar no final e evitar fervura forte."
              }
            ],
            "source_time_reference": [
              "fonte: cebola 8–10 min; aromáticos ~1 min; frango ~5 min antes do molho; molho 25–30 min"
            ],
            "source_temperature_reference": [
              "médio → fervura suave"
            ],
            "texture_or_doneness_endpoint": [
              "frango cozido e molho concentrado"
            ],
            "adaptation_guardrails": [
              "A versão “curry seco” pode omitir tomate/água/iogurte; nesse caso parar quando especiarias estiverem aderidas ao frango.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "cubos em molho reduzido; sem leite de coco",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-5F81012DF2"
          ]
        }
      }
    },
    "LEG-SS19": {
      "id": "LEG-SS19",
      "name": "Tilápia ao curry de tomate - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "filés/cubos cozidos delicadamente no molho",
      "seasoning_text": "curry, coentro, gengibre, alho",
      "seasoning_refs": [
        "T034",
        "T099"
      ],
      "source_ids": [
        "SRC-5DCE2A5D16"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: curry, coentro, gengibre, alho — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.6,
        "best_rating_count": 179,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING010"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING010",
              "raw_state": "Filé de tilápia cru, sem pele, pronto para cozinhar",
              "yield_factor": 0.7,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Tilápia ao curry de tomate - porção de lanche",
            "source_method_ids": [
              "PM-SRC-5DCE2A5D16"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela funda",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar cebola e alho autorizados em fogo moderado; a fonte usa cerca de 5 min."
              },
              {
                "order": 2,
                "instruction": "Adicionar a pasta/especiarias de curry e cozinhar por 1–2 min para perfumar."
              },
              {
                "order": 3,
                "instruction": "Adicionar tomate e somente o líquido autorizado e levar a fervura suave."
              },
              {
                "order": 4,
                "instruction": "Adicionar a tilápia/peixe em pedaços e cozinhar delicadamente até lascar com facilidade; a fonte usa 4–5 min."
              }
            ],
            "source_time_reference": [
              "fonte: aromáticos ~5 min; curry 1–2 min; peixe 4–5 min"
            ],
            "source_temperature_reference": [
              "fogo moderado; fervura suave para o peixe"
            ],
            "texture_or_doneness_endpoint": [
              "peixe opaco, úmido e lascando facilmente"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir arroz/naan ou caldo adicional se não estiverem na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "filés/cubos cozidos delicadamente no molho",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-5DCE2A5D16"
          ]
        }
      }
    },
    "LEG-SS20": {
      "id": "LEG-SS20",
      "name": "Tilápia ao curry cremoso de iogurte - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "cozimento suave; iogurte zero lactose estabilizado fora de fervura forte",
      "seasoning_text": "curry, coentro, gengibre, alho",
      "seasoning_refs": [
        "T028",
        "T099"
      ],
      "source_ids": [
        "SRC-627B49D664"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: curry, coentro, gengibre, alho — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 36,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING010"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING010",
              "raw_state": "Filé de tilápia cru, sem pele, pronto para cozinhar",
              "yield_factor": 0.7,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Tilápia ao curry cremoso de iogurte - porção de lanche",
            "source_method_ids": [
              "PM-SRC-627B49D664"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira/panela com tampa",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer a pasta/especiarias de curry com pequena quantidade do líquido autorizado e adicionar a cebola; cozinhar suavemente até macia."
              },
              {
                "order": 2,
                "instruction": "Adicionar somente o componente cremoso/líquido permitido e levar a fervura suave para formar molho homogêneo."
              },
              {
                "order": 3,
                "instruction": "Adicionar os vegetais autorizados e posicionar o peixe por cima."
              },
              {
                "order": 4,
                "instruction": "Tampar e cozinhar suavemente até o peixe estar recém-cozido; a fonte usa 10–12 min para pedaços grandes."
              }
            ],
            "source_time_reference": [
              "fonte: peixe coberto em fervura suave 10–12 min"
            ],
            "source_temperature_reference": [
              "fogo suave/médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "peixe recém-cozido, opaco e ainda úmido"
            ],
            "adaptation_guardrails": [
              "Leite de coco, vagem, arroz e caldo da fonte só entram se autorizados pela porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "cozimento suave; iogurte zero lactose estabilizado fora de fervura forte",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-627B49D664"
          ]
        }
      }
    },
    "LEG-SS21": {
      "id": "LEG-SS21",
      "name": "Tilápia mappas adaptada - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "cozimento suave em molho aromático; iogurte substitui parte cremosa",
      "seasoning_text": "cúrcuma, coentro, gengibre, chilli",
      "seasoning_refs": [
        "T028"
      ],
      "source_ids": [
        "SRC-7F8EF76EB6"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: cúrcuma, coentro, gengibre, chilli — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 139,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING010"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING010",
              "raw_state": "Filé de tilápia cru, sem pele, pronto para cozinhar",
              "yield_factor": 0.7,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Tilápia mappas adaptada - porção de lanche",
            "source_method_ids": [
              "PM-SRC-7F8EF76EB6"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a cebola em fogo médio até amolecer e começar a dourar; a fonte usa 5–10 min."
              },
              {
                "order": 2,
                "instruction": "Adicionar alho e tomate autorizados e cozinhar brevemente; na fonte, 2 min."
              },
              {
                "order": 3,
                "instruction": "Adicionar pasta/especiarias de curry e cozinhar mais cerca de 2 min para perfumar."
              },
              {
                "order": 4,
                "instruction": "Adicionar somente o líquido cremoso permitido e levar à fervura."
              },
              {
                "order": 5,
                "instruction": "Adicionar o peixe e reduzir para fervura suave até recém-cozido; a fonte usa 5–8 min."
              }
            ],
            "source_time_reference": [
              "fonte: cebola 5–10 min; alho/tomate 2 min; curry 2 min; peixe 5–8 min"
            ],
            "source_temperature_reference": [
              "fogo médio; fervura suave após adicionar o peixe"
            ],
            "texture_or_doneness_endpoint": [
              "peixe macio, opaco e recém-cozido"
            ],
            "adaptation_guardrails": [
              "Leite de coco, arroz e outros acompanhamentos da fonte só entram se autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "cozimento suave em molho aromático; iogurte substitui parte cremosa",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-7F8EF76EB6"
          ]
        }
      }
    },
    "LEG-SS22": {
      "id": "LEG-SS22",
      "name": "Tilápia ao tomate em air fryer - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "peixe na air fryer/forno, não imerso em óleo; molho de tomate separado",
      "seasoning_text": "curry, alho, coentro, limão",
      "seasoning_refs": [
        "T034",
        "T099",
        "T021"
      ],
      "source_ids": [
        "SRC-D6F2695600"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: curry, alho, coentro, limão — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 48,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING010"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING010",
              "raw_state": "Filé de tilápia cru, sem pele, pronto para cozinhar",
              "yield_factor": 0.7,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Tilápia ao tomate em air fryer - porção de lanche",
            "source_method_ids": [
              "PM-SRC-D6F2695600"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela",
              "frigideira antiaderente",
              "processador ou mixer opcional",
              "pinça"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar e dourar levemente a cebola; a fonte usa cerca de 8 min."
              },
              {
                "order": 2,
                "instruction": "Preparar a base de tomate, alho e gengibre autorizados; adicionar a pasta/especiarias e cozinhar para perfumar."
              },
              {
                "order": 3,
                "instruction": "Reduzir a base de tomate até espessar; a fonte usa cerca de 10 min antes do componente cremoso."
              },
              {
                "order": 4,
                "instruction": "Selar rapidamente o peixe em frigideira quente usando somente a gordura contabilizada; a fonte usa cerca de 1 min por lado antes de transferir ao molho."
              },
              {
                "order": 5,
                "instruction": "Finalizar o peixe no molho em fervura suave apenas até cozinhar por completo."
              }
            ],
            "source_time_reference": [
              "fonte: cebola ~8 min; base de tomate ~10 min; selagem do peixe ~1 min por lado"
            ],
            "source_temperature_reference": [
              "alto para selagem; suave no molho"
            ],
            "texture_or_doneness_endpoint": [
              "peixe levemente dourado fora e recém-cozido dentro; molho reduzido"
            ],
            "adaptation_guardrails": [
              "A farinha de empanar da fonte não deve ser usada se não estiver na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "peixe na air fryer/forno, não imerso em óleo; molho de tomate separado",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-D6F2695600"
          ]
        }
      }
    },
    "LEG-SS23": {
      "id": "LEG-SS23",
      "name": "Tilápia gratinada com parmesão - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "forno/grill alto; camada fina de parmesão, sem maionese",
      "seasoning_text": "limão, manjericão, pimenta, alho em pó",
      "seasoning_refs": [
        "T021",
        "T098",
        "T017"
      ],
      "source_ids": [
        "SRC-F6B78FAB13"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão, manjericão, pimenta, alho em pó — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 0,
        "best_rating": null,
        "best_rating_count": null,
        "rating_status": "no_numeric_rating_on_referenced_source"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING010"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING010",
              "raw_state": "Filé de tilápia cru, sem pele, pronto para cozinhar",
              "yield_factor": 0.7,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Tilápia gratinada com parmesão - porção de lanche",
            "source_method_ids": [
              "PM-SRC-F6B78FAB13"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira rasa",
              "grill/broiler ou air fryer",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar/temperar os filés e dispor em camada única."
              },
              {
                "order": 2,
                "instruction": "Pré-cozinhar sob grill forte, virando na metade quando a espessura permitir."
              },
              {
                "order": 3,
                "instruction": "Aplicar uma camada fina da cobertura de parmesão adaptada."
              },
              {
                "order": 4,
                "instruction": "Voltar ao grill/air fryer apenas até dourar a cobertura e o peixe lascar."
              }
            ],
            "source_time_reference": [
              "fonte: ~4 min de grill inicial (virando na metade) + ~2 min após a cobertura"
            ],
            "source_temperature_reference": [
              "broiler/grill alto, filé próximo da fonte de calor"
            ],
            "texture_or_doneness_endpoint": [
              "parmesão dourado; peixe lascando"
            ],
            "adaptation_guardrails": [
              "A fonte usa maionese e manteiga; nossa adaptação não deve adicioná-las salvo se explicitamente contabilizadas.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "forno/grill alto; camada fina de parmesão, sem maionese",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-F6B78FAB13"
          ]
        }
      }
    },
    "LEG-SS24": {
      "id": "LEG-SS24",
      "name": "Lombo suíno ao tomate e ervas - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "lombo em medalhões/tiras, selado e finalizado no tomate",
      "seasoning_text": "alho, alecrim, orégano, pimenta",
      "seasoning_refs": [
        "T034",
        "T098"
      ],
      "source_ids": [
        "SRC-B1518DE66A"
      ],
      "adaptation_notes": "Técnica de ragù/tomate aplicada ao lombo; gordura adicionada medida e molho reduzido. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: alho, alecrim, orégano, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING009"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING009",
              "raw_state": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
              "yield_factor": 0.64,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Lombo suíno ao tomate e ervas - porção de lanche",
            "source_method_ids": [
              "PM-SRC-B1518DE66A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela pesada",
              "frigideira auxiliar opcional",
              "colher"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar aromáticos autorizados; em paralelo, dourar a carne moída em lotes para não cozinhar no próprio vapor."
              },
              {
                "order": 2,
                "instruction": "Juntar carne e aromáticos, adicionar tomate/purê autorizados e levar a fogo baixo."
              },
              {
                "order": 3,
                "instruction": "Cozinhar lentamente até o molho reduzir e concentrar; mexer ocasionalmente."
              },
              {
                "order": 4,
                "instruction": "Finalizar com ervas/queijo apenas se previstos na adaptação."
              }
            ],
            "source_time_reference": [
              "fonte: base de carne/tomate 1½–2 h em fogo muito baixo, seguida de ~30 min após adição final de lácteo"
            ],
            "source_temperature_reference": [
              "dourar em fogo médio-alto; reduzir em fogo muito baixo"
            ],
            "texture_or_doneness_endpoint": [
              "carne bem dourada e molho denso, sem água livre"
            ],
            "adaptation_guardrails": [
              "A versão sem massa omite spaghetti/mascarpone; leite e outros vegetais só entram se estiverem listados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Técnica de ragù/tomate aplicada ao lombo; gordura adicionada medida e molho reduzido.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "lombo em medalhões/tiras, selado e finalizado no tomate",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-B1518DE66A"
          ]
        }
      }
    },
    "LEG-SS25": {
      "id": "LEG-SS25",
      "name": "Lombo suíno com limão, alho e alecrim - porção de lanche",
      "category": "afternoon_snack_savory",
      "origin": "legacy_docx",
      "method_overview": "medalhões grelhados/assados; mesma família aromática do assado de referência",
      "seasoning_text": "limão, alho, alecrim, pimenta",
      "seasoning_refs": [
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-D6E6893D01"
      ],
      "adaptation_notes": "Proteína trocada por lombo suíno magro; perfil limão-alho-alecrim e método de assar/grelhar preservados. Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão, alho, alecrim, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.9,
        "best_rating_count": 31,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING009"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING009",
              "raw_state": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
              "yield_factor": 0.64,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Lombo suíno com limão, alho e alecrim - porção de lanche",
            "source_method_ids": [
              "PM-SRC-D6E6893D01"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar alecrim, alho, limão e temperos autorizados com a gordura da porção."
              },
              {
                "order": 2,
                "instruction": "Cobrir o frango com essa mistura e assar até dourar."
              },
              {
                "order": 3,
                "instruction": "Descansar antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para frango inteiro: 1 h 10 min + 10 min de descanso"
            ],
            "source_temperature_reference": [
              "190°C / 170°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e cozido; repousado antes do corte"
            ],
            "adaptation_guardrails": [
              "A fonte é para ave inteira; para peito/cubos, usar somente o perfil aromático e técnica de assar, não o tempo de 1 h 10 min.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Proteína trocada por lombo suíno magro; perfil limão-alho-alecrim e método de assar/grelhar preservados.",
          "Molhos ricos em carboidrato foram reduzidos a traços; gordura é ajustada com azeite pesado e/ou pequena porção de queijo zero lactose."
        ],
        "original_method_overview": "medalhões grelhados/assados; mesma família aromática do assado de referência",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-D6E6893D01"
          ]
        }
      }
    },
    "LEG-D02": {
      "id": "LEG-D02",
      "name": "Strogonoff de carne com cogumelos e iogurte zero lactose + vagem com mostarda em grãos + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "carne selada; molho curto; iogurte entra fora do fogo; cozida al dente e envolvida em molho leve; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "mostarda, páprica, pimenta; mostarda em grãos, vinagre, pimenta",
      "seasoning_refs": [
        "T028",
        "T046",
        "T004"
      ],
      "source_ids": [
        "SRC-C1DE9F5FD9",
        "SRC-A67220CDDD"
      ],
      "adaptation_notes": "Creme original reduzido/substituído por iogurte zero lactose; sem acompanhamento amiláceo; porções reescaladas. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: mostarda, páprica, pimenta; mostarda em grãos, vinagre, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 343,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING022",
            "ING024",
            "ING025",
            "ING027",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING025",
              "raw_state": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
              "yield_factor": 0.44,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Strogonoff de carne com cogumelos e iogurte zero lactose",
            "source_method_ids": [
              "PM-SRC-C1DE9F5FD9"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar cebola e alho; dourar cogumelos separadamente para perderem água."
              },
              {
                "order": 2,
                "instruction": "Secar/temperar a carne e selar rapidamente em frigideira quente sem lotar."
              },
              {
                "order": 3,
                "instruction": "Reunir os componentes e reduzir o molho curto com mostarda/caldo/tomate apenas quando previstos."
              },
              {
                "order": 4,
                "instruction": "Retirar do calor forte e incorporar o iogurte zero lactose da adaptação para manter cremosidade sem talhar."
              }
            ],
            "source_time_reference": [
              "fonte: cebola ~15 min; alho 2–3 min; cogumelos ~5 min; carne 3–4 min; molho ~5 min"
            ],
            "source_temperature_reference": [
              "frigideira quente para selar; calor médio/baixo no molho"
            ],
            "texture_or_doneness_endpoint": [
              "carne dourada; cogumelos sem excesso de líquido; molho cremoso e curto"
            ],
            "adaptation_guardrails": [
              "A fonte usa farinha/crème fraîche; omitir farinha e trocar o lácteo conforme a adaptação.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com mostarda em grãos",
            "source_method_ids": [
              "PM-SRC-A67220CDDD"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela",
              "frigideira rasa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem em água fervente até ficar verde viva e ainda com leve crocância."
              },
              {
                "order": 2,
                "instruction": "Amaciar o aromático autorizado na gordura prevista; adicionar mostarda e o componente cremoso apenas se houver."
              },
              {
                "order": 3,
                "instruction": "Adicionar vagem escorrida e limão, envolver rapidamente e servir."
              }
            ],
            "source_time_reference": [
              "fonte: vagem 4–5 min"
            ],
            "source_temperature_reference": [
              "fervura para vagem; calor moderado no molho"
            ],
            "texture_or_doneness_endpoint": [
              "vagem al dente, revestida por molho leve"
            ],
            "adaptation_guardrails": [
              "Crème fraîche da fonte pode ser omitido/trocado por iogurte zero lactose somente se isso constar na ficha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Creme original reduzido/substituído por iogurte zero lactose; sem acompanhamento amiláceo; porções reescaladas.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "carne selada; molho curto; iogurte entra fora do fogo; cozida al dente e envolvida em molho leve; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-C1DE9F5FD9",
            "PM-SRC-A67220CDDD"
          ]
        }
      }
    },
    "LEG-D04": {
      "id": "LEG-D04",
      "name": "Carne ao curry + vagem com amêndoas tostadas + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "cozimento úmido curto até molho aderente; vagem firme com amêndoas tostadas por cima; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "curry, cominho, coentro, gengibre, alho; alho, chalota/cebola em traço, pimenta",
      "seasoning_refs": [
        "T099",
        "T098"
      ],
      "source_ids": [
        "SRC-419B2CE79F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: curry, cominho, coentro, gengibre, alho; alho, chalota/cebola em traço, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.6,
        "best_rating_count": 80,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING022",
            "ING023",
            "ING024",
            "ING027",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Carne ao curry + vagem com amêndoas tostadas + folhas",
            "source_method_ids": [
              "PM-SRC-419B2CE79F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela larga",
              "colher de pau/espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer parte da gordura prevista e dourar a carne moída em fogo alto, quebrando os grumos; retirar e reservar quando bem colorida."
              },
              {
                "order": 2,
                "instruction": "Na mesma panela, amaciar cebola, alho e gengibre autorizados até ficarem macios."
              },
              {
                "order": 3,
                "instruction": "Adicionar curry/especiarias e cozinhar brevemente para liberar aroma."
              },
              {
                "order": 4,
                "instruction": "Juntar tomate/líquido apenas nas quantidades autorizadas e retornar a carne; cozinhar em fogo médio até o molho curto aderir à carne."
              },
              {
                "order": 5,
                "instruction": "Finalizar com ervas ou iogurte somente quando previstos na versão adaptada."
              }
            ],
            "source_time_reference": [
              "fonte: dourar a carne; aromáticos ~8 min; depois ~20 min em fogo médio com os componentes do curry"
            ],
            "source_temperature_reference": [
              "fogo alto para dourar; médio para terminar"
            ],
            "texture_or_doneness_endpoint": [
              "carne bem dourada, grumos soltos e molho reduzido/aderente"
            ],
            "adaptation_guardrails": [
              "Batata, cenoura, arroz e chutney da fonte são omitidos; água/caldo é reduzido na adaptação para manter o curry curto.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "cozimento úmido curto até molho aderente; vagem firme com amêndoas tostadas por cima; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-419B2CE79F"
          ]
        }
      }
    },
    "LEG-D06": {
      "id": "LEG-D06",
      "name": "Carne ao curry + vagem com mostarda em grãos + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "cozimento úmido curto até molho aderente; cozida al dente e envolvida em molho leve; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "curry, cominho, coentro, gengibre, alho; mostarda em grãos, vinagre, pimenta",
      "seasoning_refs": [
        "T099",
        "T004",
        "T098"
      ],
      "source_ids": [
        "SRC-419B2CE79F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: curry, cominho, coentro, gengibre, alho; mostarda em grãos, vinagre, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.6,
        "best_rating_count": 80,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING022",
            "ING023",
            "ING024",
            "ING027",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Carne ao curry + vagem com mostarda em grãos + folhas",
            "source_method_ids": [
              "PM-SRC-419B2CE79F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela larga",
              "colher de pau/espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer parte da gordura prevista e dourar a carne moída em fogo alto, quebrando os grumos; retirar e reservar quando bem colorida."
              },
              {
                "order": 2,
                "instruction": "Na mesma panela, amaciar cebola, alho e gengibre autorizados até ficarem macios."
              },
              {
                "order": 3,
                "instruction": "Adicionar curry/especiarias e cozinhar brevemente para liberar aroma."
              },
              {
                "order": 4,
                "instruction": "Juntar tomate/líquido apenas nas quantidades autorizadas e retornar a carne; cozinhar em fogo médio até o molho curto aderir à carne."
              },
              {
                "order": 5,
                "instruction": "Finalizar com ervas ou iogurte somente quando previstos na versão adaptada."
              }
            ],
            "source_time_reference": [
              "fonte: dourar a carne; aromáticos ~8 min; depois ~20 min em fogo médio com os componentes do curry"
            ],
            "source_temperature_reference": [
              "fogo alto para dourar; médio para terminar"
            ],
            "texture_or_doneness_endpoint": [
              "carne bem dourada, grumos soltos e molho reduzido/aderente"
            ],
            "adaptation_guardrails": [
              "Batata, cenoura, arroz e chutney da fonte são omitidos; água/caldo é reduzido na adaptação para manter o curry curto.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "cozimento úmido curto até molho aderente; cozida al dente e envolvida em molho leve; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-419B2CE79F"
          ]
        }
      }
    },
    "LEG-D07": {
      "id": "LEG-D07",
      "name": "Ragù de carne e tomate + purê de couve-flor + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "carne bem dourada e molho de tomate reduzido; cozida e processada; iogurte zero lactose para cremosidade; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "alho, manjericão, orégano, pimenta; noz-moscada, alho, pimenta",
      "seasoning_refs": [
        "T028",
        "T036",
        "T034"
      ],
      "source_ids": [
        "SRC-B1518DE66A",
        "SRC-98F3FC1410"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: alho, manjericão, orégano, pimenta; noz-moscada, alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 2,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING019",
            "ING023",
            "ING024",
            "ING027",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING019",
              "raw_state": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
              "yield_factor": 0.98,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Ragù de carne e tomate",
            "source_method_ids": [
              "PM-SRC-B1518DE66A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela pesada",
              "frigideira auxiliar opcional",
              "colher"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar aromáticos autorizados; em paralelo, dourar a carne moída em lotes para não cozinhar no próprio vapor."
              },
              {
                "order": 2,
                "instruction": "Juntar carne e aromáticos, adicionar tomate/purê autorizados e levar a fogo baixo."
              },
              {
                "order": 3,
                "instruction": "Cozinhar lentamente até o molho reduzir e concentrar; mexer ocasionalmente."
              },
              {
                "order": 4,
                "instruction": "Finalizar com ervas/queijo apenas se previstos na adaptação."
              }
            ],
            "source_time_reference": [
              "fonte: base de carne/tomate 1½–2 h em fogo muito baixo, seguida de ~30 min após adição final de lácteo"
            ],
            "source_temperature_reference": [
              "dourar em fogo médio-alto; reduzir em fogo muito baixo"
            ],
            "texture_or_doneness_endpoint": [
              "carne bem dourada e molho denso, sem água livre"
            ],
            "adaptation_guardrails": [
              "A versão sem massa omite spaghetti/mascarpone; leite e outros vegetais só entram se estiverem listados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "purê de couve-flor",
            "source_method_ids": [
              "PM-SRC-98F3FC1410"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "panela ou vaporizador",
              "processador/liquidificador"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a couve-flor até ficar completamente macia."
              },
              {
                "order": 2,
                "instruction": "Escorrer e deixar o vapor sair para evitar purê aguado."
              },
              {
                "order": 3,
                "instruction": "Processar até liso com somente os componentes cremosos/gordura autorizados."
              },
              {
                "order": 4,
                "instruction": "Ajustar temperos e manter aquecido sem ferver vigorosamente."
              }
            ],
            "source_time_reference": [
              "fonte de purê; tempo depende do tamanho dos floretes"
            ],
            "source_temperature_reference": [
              "cozimento até maciez; processar quente"
            ],
            "texture_or_doneness_endpoint": [
              "purê liso, espesso e sem água livre"
            ],
            "adaptation_guardrails": [
              "Usar iogurte zero lactose apenas quando constar; sem farinha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "carne bem dourada e molho de tomate reduzido; cozida e processada; iogurte zero lactose para cremosidade; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-B1518DE66A",
            "PM-SRC-98F3FC1410"
          ]
        }
      }
    },
    "LEG-D09": {
      "id": "LEG-D09",
      "name": "Ragù de carne e tomate + vagem ao limão e parmesão + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "carne bem dourada e molho de tomate reduzido; cozida al dente e finalizada com limão/parmesão; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "alho, manjericão, orégano, pimenta; limão, pimenta",
      "seasoning_refs": [
        "T036",
        "T034",
        "T021"
      ],
      "source_ids": [
        "SRC-B1518DE66A",
        "SRC-F0447AD9EA"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: alho, manjericão, orégano, pimenta; limão, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 9,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING022",
            "ING023",
            "ING024",
            "ING027",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING005"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Ragù de carne e tomate",
            "source_method_ids": [
              "PM-SRC-B1518DE66A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela pesada",
              "frigideira auxiliar opcional",
              "colher"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar aromáticos autorizados; em paralelo, dourar a carne moída em lotes para não cozinhar no próprio vapor."
              },
              {
                "order": 2,
                "instruction": "Juntar carne e aromáticos, adicionar tomate/purê autorizados e levar a fogo baixo."
              },
              {
                "order": 3,
                "instruction": "Cozinhar lentamente até o molho reduzir e concentrar; mexer ocasionalmente."
              },
              {
                "order": 4,
                "instruction": "Finalizar com ervas/queijo apenas se previstos na adaptação."
              }
            ],
            "source_time_reference": [
              "fonte: base de carne/tomate 1½–2 h em fogo muito baixo, seguida de ~30 min após adição final de lácteo"
            ],
            "source_temperature_reference": [
              "dourar em fogo médio-alto; reduzir em fogo muito baixo"
            ],
            "texture_or_doneness_endpoint": [
              "carne bem dourada e molho denso, sem água livre"
            ],
            "adaptation_guardrails": [
              "A versão sem massa omite spaghetti/mascarpone; leite e outros vegetais só entram se estiverem listados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem ao limão e parmesão",
            "source_method_ids": [
              "PM-SRC-F0447AD9EA"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela/vaporizador",
              "tigela"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem brevemente até al dente; opcionalmente resfriar para preservar cor quando será armazenada."
              },
              {
                "order": 2,
                "instruction": "Secar bem."
              },
              {
                "order": 3,
                "instruction": "Misturar com limão/mostarda/azeite autorizados e finalizar com parmesão no momento de servir ou após reaquecer."
              }
            ],
            "source_time_reference": [
              "fonte: vapor ~5 min ou fervura ~3 min"
            ],
            "source_temperature_reference": [
              "cozimento curto"
            ],
            "texture_or_doneness_endpoint": [
              "vagem verde e firme; parmesão aderido sem virar pasta"
            ],
            "adaptation_guardrails": [
              "Usar somente a quantidade de parmesão/azeite contabilizada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "carne bem dourada e molho de tomate reduzido; cozida al dente e finalizada com limão/parmesão; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-B1518DE66A",
            "PM-SRC-F0447AD9EA"
          ]
        }
      }
    },
    "LEG-D11": {
      "id": "LEG-D11",
      "name": "Bolonhesa sem massa + vagem com alho + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "carne moída em molho longo de tomate; servida com vegetal; salteada rapidamente, ainda firme; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "alho, ervas italianas, pimenta; alho, pimenta",
      "seasoning_refs": [
        "T044",
        "T034",
        "T098"
      ],
      "source_ids": [
        "SRC-A3A876CA09",
        "SRC-89DE384F5F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: alho, ervas italianas, pimenta; alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 1207,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING022",
            "ING023",
            "ING024",
            "ING027",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Bolonhesa sem massa",
            "source_method_ids": [
              "PM-SRC-A3A876CA09"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "panela pesada",
              "colher"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar a carne moída e amaciar os aromáticos previstos."
              },
              {
                "order": 2,
                "instruction": "Adicionar tomate e temperos autorizados, raspar o fundo da panela e levar a fervura suave."
              },
              {
                "order": 3,
                "instruction": "Cozinhar lentamente até reduzir e desenvolver sabor; servir sem massa quando a ficha disser “sem massa”."
              }
            ],
            "source_time_reference": [
              "receita-fonte de bolonhesa longa (~2 h total)"
            ],
            "source_temperature_reference": [
              "fogo baixo após dourar"
            ],
            "texture_or_doneness_endpoint": [
              "molho espesso e carne macia"
            ],
            "adaptation_guardrails": [
              "Massa, vinho e demais ingredientes da fonte são omitidos se não constarem na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com alho",
            "source_method_ids": [
              "PM-SRC-89DE384F5F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "wok ou frigideira larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer a gordura contabilizada no wok/frigideira."
              },
              {
                "order": 2,
                "instruction": "Saltear a vagem em fogo alto por cerca de 5 min, até começar a dourar e continuar firme."
              },
              {
                "order": 3,
                "instruction": "Adicionar o alho e continuar apenas até o alho começar a dourar."
              },
              {
                "order": 4,
                "instruction": "Adicionar o molho/tempero autorizado no final e servir."
              }
            ],
            "source_time_reference": [
              "fonte: vagem ~5 min antes do alho"
            ],
            "source_temperature_reference": [
              "fogo alto"
            ],
            "texture_or_doneness_endpoint": [
              "vagem al dente com pontos dourados; alho dourado sem queimar"
            ],
            "adaptation_guardrails": [
              "Molho de ostra/soja só entra se estiver autorizado; não adicionar óleo além da porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "carne moída em molho longo de tomate; servida com vegetal; salteada rapidamente, ainda firme; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A3A876CA09",
            "PM-SRC-89DE384F5F"
          ]
        }
      }
    },
    "LEG-D12": {
      "id": "LEG-D12",
      "name": "Bolonhesa sem massa + purê de couve-flor + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "carne moída em molho longo de tomate; servida com vegetal; cozida e processada; iogurte zero lactose para cremosidade; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "alho, ervas italianas, pimenta; noz-moscada, alho, pimenta",
      "seasoning_refs": [
        "T028",
        "T044",
        "T034"
      ],
      "source_ids": [
        "SRC-A3A876CA09",
        "SRC-98F3FC1410"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: alho, ervas italianas, pimenta; noz-moscada, alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 2,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING019",
            "ING023",
            "ING024",
            "ING027",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING019",
              "raw_state": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
              "yield_factor": 0.98,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Bolonhesa sem massa",
            "source_method_ids": [
              "PM-SRC-A3A876CA09"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "panela pesada",
              "colher"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar a carne moída e amaciar os aromáticos previstos."
              },
              {
                "order": 2,
                "instruction": "Adicionar tomate e temperos autorizados, raspar o fundo da panela e levar a fervura suave."
              },
              {
                "order": 3,
                "instruction": "Cozinhar lentamente até reduzir e desenvolver sabor; servir sem massa quando a ficha disser “sem massa”."
              }
            ],
            "source_time_reference": [
              "receita-fonte de bolonhesa longa (~2 h total)"
            ],
            "source_temperature_reference": [
              "fogo baixo após dourar"
            ],
            "texture_or_doneness_endpoint": [
              "molho espesso e carne macia"
            ],
            "adaptation_guardrails": [
              "Massa, vinho e demais ingredientes da fonte são omitidos se não constarem na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "purê de couve-flor",
            "source_method_ids": [
              "PM-SRC-98F3FC1410"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "panela ou vaporizador",
              "processador/liquidificador"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a couve-flor até ficar completamente macia."
              },
              {
                "order": 2,
                "instruction": "Escorrer e deixar o vapor sair para evitar purê aguado."
              },
              {
                "order": 3,
                "instruction": "Processar até liso com somente os componentes cremosos/gordura autorizados."
              },
              {
                "order": 4,
                "instruction": "Ajustar temperos e manter aquecido sem ferver vigorosamente."
              }
            ],
            "source_time_reference": [
              "fonte de purê; tempo depende do tamanho dos floretes"
            ],
            "source_temperature_reference": [
              "cozimento até maciez; processar quente"
            ],
            "texture_or_doneness_endpoint": [
              "purê liso, espesso e sem água livre"
            ],
            "adaptation_guardrails": [
              "Usar iogurte zero lactose apenas quando constar; sem farinha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "carne moída em molho longo de tomate; servida com vegetal; cozida e processada; iogurte zero lactose para cremosidade; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 2,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A3A876CA09",
            "PM-SRC-98F3FC1410"
          ]
        }
      }
    },
    "LEG-D13": {
      "id": "LEG-D13",
      "name": "Kofta bovina com molho de iogurte e hortelã + brócolis assado + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "formato de kofta; grelha/air fryer; molho frio de iogurte; forno/air fryer, pontas tostadas; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "cominho, coentro, hortelã, alho; alho, pimenta, limão opcional",
      "seasoning_refs": [
        "T028",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-E9D3F66FB7",
        "SRC-D97E9277C4"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: cominho, coentro, hortelã, alho; alho, pimenta, limão opcional — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 95,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008",
            "ING018",
            "ING024",
            "ING027",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING018",
              "raw_state": "Brócolis cru, aparado e pronto para cozinhar",
              "yield_factor": 1.0,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Kofta bovina com molho de iogurte e hortelã",
            "source_method_ids": [
              "PM-SRC-E9D3F66FB7"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "frigideira antiaderente",
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne crua moída com os temperos/aromáticos autorizados e moldar pequenas koftas ovais."
              },
              {
                "order": 2,
                "instruction": "Selar em lotes na frigideira; a fonte usa 2–3 min nesta etapa."
              },
              {
                "order": 3,
                "instruction": "Transferir para assadeira e terminar no forno; a fonte usa 200°C/180°C ventilado por 10 min."
              },
              {
                "order": 4,
                "instruction": "Preparar o molho de iogurte/hortelã somente com os ingredientes autorizados e servir separado ou sobre as koftas. A gramagem desta página já deve ser pesada antes da cocção; não é necessário repesar para porcionar."
              }
            ],
            "source_time_reference": [
              "fonte: frigideira 2–3 min; forno 10 min"
            ],
            "source_temperature_reference": [
              "200°C / 180°C ventilado para finalizar"
            ],
            "texture_or_doneness_endpoint": [
              "koftas seladas por fora e totalmente cozidas no centro"
            ],
            "adaptation_guardrails": [
              "Chutney, flatbread e acompanhamentos não entram se não constarem da alternativa; usar iogurte zero lactose quando previsto.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "brócolis assado",
            "source_method_ids": [
              "PM-SRC-D97E9277C4"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar bem o brócolis, misturar com a quantidade de azeite prevista e temperos."
              },
              {
                "order": 2,
                "instruction": "Espalhar em camada única sem amontoar."
              },
              {
                "order": 3,
                "instruction": "Assar até macio no interior e com pontas/bordas tostadas, movimentando a assadeira aproximadamente na metade."
              }
            ],
            "source_time_reference": [
              "25–30 min"
            ],
            "source_temperature_reference": [
              "180°C / 160°C ventilado na fonte"
            ],
            "texture_or_doneness_endpoint": [
              "macio com bordas crocantes/tostadas"
            ],
            "adaptation_guardrails": [
              "Limão/alho entram apenas conforme tempero autorizado.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "formato de kofta; grelha/air fryer; molho frio de iogurte; forno/air fryer, pontas tostadas; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E9D3F66FB7",
            "PM-SRC-D97E9277C4"
          ]
        }
      }
    },
    "LEG-D14": {
      "id": "LEG-D14",
      "name": "Kofta bovina com molho de iogurte e hortelã + vagem com amêndoas tostadas + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "formato de kofta; grelha/air fryer; molho frio de iogurte; vagem firme com amêndoas tostadas por cima; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "cominho, coentro, hortelã, alho; alho, chalota/cebola em traço, pimenta",
      "seasoning_refs": [
        "T028",
        "T098"
      ],
      "source_ids": [
        "SRC-E9D3F66FB7",
        "SRC-E309A5D52B"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: cominho, coentro, hortelã, alho; alho, chalota/cebola em traço, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 95,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008",
            "ING022",
            "ING024",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Kofta bovina com molho de iogurte e hortelã",
            "source_method_ids": [
              "PM-SRC-E9D3F66FB7"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "frigideira antiaderente",
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne crua moída com os temperos/aromáticos autorizados e moldar pequenas koftas ovais."
              },
              {
                "order": 2,
                "instruction": "Selar em lotes na frigideira; a fonte usa 2–3 min nesta etapa."
              },
              {
                "order": 3,
                "instruction": "Transferir para assadeira e terminar no forno; a fonte usa 200°C/180°C ventilado por 10 min."
              },
              {
                "order": 4,
                "instruction": "Preparar o molho de iogurte/hortelã somente com os ingredientes autorizados e servir separado ou sobre as koftas. A gramagem desta página já deve ser pesada antes da cocção; não é necessário repesar para porcionar."
              }
            ],
            "source_time_reference": [
              "fonte: frigideira 2–3 min; forno 10 min"
            ],
            "source_temperature_reference": [
              "200°C / 180°C ventilado para finalizar"
            ],
            "texture_or_doneness_endpoint": [
              "koftas seladas por fora e totalmente cozidas no centro"
            ],
            "adaptation_guardrails": [
              "Chutney, flatbread e acompanhamentos não entram se não constarem da alternativa; usar iogurte zero lactose quando previsto.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com amêndoas tostadas",
            "source_method_ids": [
              "PM-SRC-E309A5D52B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela",
              "frigideira"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem até al dente, escorrer e secar."
              },
              {
                "order": 2,
                "instruction": "Amaciar cebola/shallot e alho lentamente na gordura prevista sem deixar queimar."
              },
              {
                "order": 3,
                "instruction": "Adicionar a vagem apenas para aquecer e envolver."
              },
              {
                "order": 4,
                "instruction": "Finalizar com limão e amêndoas tostadas; para marmita, manter as amêndoas separadas até servir."
              }
            ],
            "source_time_reference": [
              "fonte: aromáticos ~8 min; vagem cozida previamente"
            ],
            "source_temperature_reference": [
              "calor suave para aromáticos"
            ],
            "texture_or_doneness_endpoint": [
              "vagem firme; amêndoas crocantes"
            ],
            "adaptation_guardrails": [
              "Quantidade de amêndoa e azeite deve seguir a porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "formato de kofta; grelha/air fryer; molho frio de iogurte; vagem firme com amêndoas tostadas por cima; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E9D3F66FB7",
            "PM-SRC-E309A5D52B"
          ]
        }
      }
    },
    "LEG-D16": {
      "id": "LEG-D16",
      "name": "Kofte marroquino ao tomate + vagem com mostarda em grãos + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "almôndegas/koftas douradas e finalizadas no molho; cozida al dente e envolvida em molho leve; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "cominho, páprica, canela em traço, coentro; mostarda em grãos, vinagre, pimenta",
      "seasoning_refs": [
        "T034",
        "T004",
        "T098"
      ],
      "source_ids": [
        "SRC-8E365AEB6D",
        "SRC-A67220CDDD"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: cominho, páprica, canela em traço, coentro; mostarda em grãos, vinagre, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 42,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008",
            "ING022",
            "ING023",
            "ING024",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.65,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Kofte marroquino ao tomate",
            "source_method_ids": [
              "PM-SRC-8E365AEB6D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "espetos",
              "grill/churrasqueira",
              "panela para molho"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne crua moída com cebola/ervas/especiarias autorizadas e moldar cilindros uniformes em espetos."
              },
              {
                "order": 2,
                "instruction": "Reduzir o molho de tomate/harissa autorizado por 15–20 min ou até espesso."
              },
              {
                "order": 3,
                "instruction": "Grelhar as koftas por cerca de 6–8 min no total, virando, até douradas e cozidas no centro."
              },
              {
                "order": 4,
                "instruction": "porcionar pelo peso cru indicado antes da cocção e aplicar apenas os molhos previstos na alternativa."
              }
            ],
            "source_time_reference": [
              "fonte: molho 15–20 min; koftas 6–8 min"
            ],
            "source_temperature_reference": [
              "grill quente; molho em fervura suave"
            ],
            "texture_or_doneness_endpoint": [
              "koftas douradas e cozidas no centro"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir iogurte, pinoli, açúcar ou acompanhamentos quando não autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com mostarda em grãos",
            "source_method_ids": [
              "PM-SRC-A67220CDDD"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela",
              "frigideira rasa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem em água fervente até ficar verde viva e ainda com leve crocância."
              },
              {
                "order": 2,
                "instruction": "Amaciar o aromático autorizado na gordura prevista; adicionar mostarda e o componente cremoso apenas se houver."
              },
              {
                "order": 3,
                "instruction": "Adicionar vagem escorrida e limão, envolver rapidamente e servir."
              }
            ],
            "source_time_reference": [
              "fonte: vagem 4–5 min"
            ],
            "source_temperature_reference": [
              "fervura para vagem; calor moderado no molho"
            ],
            "texture_or_doneness_endpoint": [
              "vagem al dente, revestida por molho leve"
            ],
            "adaptation_guardrails": [
              "Crème fraîche da fonte pode ser omitido/trocado por iogurte zero lactose somente se isso constar na ficha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "almôndegas/koftas douradas e finalizadas no molho; cozida al dente e envolvida em molho leve; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-8E365AEB6D",
            "PM-SRC-A67220CDDD"
          ]
        }
      }
    },
    "LEG-D18": {
      "id": "LEG-D18",
      "name": "Kofte marroquino ao tomate + brócolis assado + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "almôndegas/koftas douradas e finalizadas no molho; forno/air fryer, pontas tostadas; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "cominho, páprica, canela em traço, coentro; alho, pimenta, limão opcional",
      "seasoning_refs": [
        "T034",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-8E365AEB6D",
        "SRC-D97E9277C4"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: cominho, páprica, canela em traço, coentro; alho, pimenta, limão opcional — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 42,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008",
            "ING018",
            "ING023",
            "ING024",
            "ING027",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.65,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING018",
              "raw_state": "Brócolis cru, aparado e pronto para cozinhar",
              "yield_factor": 1.0,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Kofte marroquino ao tomate",
            "source_method_ids": [
              "PM-SRC-8E365AEB6D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "espetos",
              "grill/churrasqueira",
              "panela para molho"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne crua moída com cebola/ervas/especiarias autorizadas e moldar cilindros uniformes em espetos."
              },
              {
                "order": 2,
                "instruction": "Reduzir o molho de tomate/harissa autorizado por 15–20 min ou até espesso."
              },
              {
                "order": 3,
                "instruction": "Grelhar as koftas por cerca de 6–8 min no total, virando, até douradas e cozidas no centro."
              },
              {
                "order": 4,
                "instruction": "porcionar pelo peso cru indicado antes da cocção e aplicar apenas os molhos previstos na alternativa."
              }
            ],
            "source_time_reference": [
              "fonte: molho 15–20 min; koftas 6–8 min"
            ],
            "source_temperature_reference": [
              "grill quente; molho em fervura suave"
            ],
            "texture_or_doneness_endpoint": [
              "koftas douradas e cozidas no centro"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir iogurte, pinoli, açúcar ou acompanhamentos quando não autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "brócolis assado",
            "source_method_ids": [
              "PM-SRC-D97E9277C4"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar bem o brócolis, misturar com a quantidade de azeite prevista e temperos."
              },
              {
                "order": 2,
                "instruction": "Espalhar em camada única sem amontoar."
              },
              {
                "order": 3,
                "instruction": "Assar até macio no interior e com pontas/bordas tostadas, movimentando a assadeira aproximadamente na metade."
              }
            ],
            "source_time_reference": [
              "25–30 min"
            ],
            "source_temperature_reference": [
              "180°C / 160°C ventilado na fonte"
            ],
            "texture_or_doneness_endpoint": [
              "macio com bordas crocantes/tostadas"
            ],
            "adaptation_guardrails": [
              "Limão/alho entram apenas conforme tempero autorizado.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "almôndegas/koftas douradas e finalizadas no molho; forno/air fryer, pontas tostadas; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-8E365AEB6D",
            "PM-SRC-D97E9277C4"
          ]
        }
      }
    },
    "LEG-D19": {
      "id": "LEG-D19",
      "name": "Hambúrguer kofta caseiro + berinjela com tomate e iogurte + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "hambúrguer moldado, chapa ou air fryer; sem pão; berinjela assada/grelhada; molhos em camadas; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "cominho, coentro, salsa, alho; alho, hortelã, pimenta",
      "seasoning_refs": [
        "T028",
        "T034",
        "T098"
      ],
      "source_ids": [
        "SRC-31F2558DC1",
        "SRC-0E25C4C87F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: cominho, coentro, salsa, alho; alho, hortelã, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.6,
        "best_rating_count": 53,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008",
            "ING020",
            "ING023",
            "ING024",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING020",
              "raw_state": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
              "yield_factor": 0.94,
              "yield_source_id": "SRC-YIELD-USDA-AH102",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Hambúrguer kofta caseiro",
            "source_method_ids": [
              "PM-SRC-31F2558DC1"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "grelha/chapa ou air fryer",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne moída com as especiarias/ervas autorizadas até distribuir uniformemente, sem compactar em excesso."
              },
              {
                "order": 2,
                "instruction": "Moldar em cilindros, koftas, discos ou espetos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Grelhar/chapear ou usar air fryer, virando quando necessário para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir molho de iogurte/hortelã separado quando previsto; em versões ao tomate, terminar as koftas no molho reduzido."
              }
            ],
            "source_time_reference": [
              "fontes de kofta: normalmente ~20–50 min total conforme receita/formato"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente; molho em fervura suave"
            ],
            "texture_or_doneness_endpoint": [
              "superfície bem dourada; centro cozido; molho reduzido quando aplicável"
            ],
            "adaptation_guardrails": [
              "As fontes frequentemente usam cordeiro/pão; aqui manter a carne e ingredientes da nossa porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "berinjela com tomate e iogurte",
            "source_method_ids": [
              "PM-SRC-0E25C4C87F"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "frigideira/grelha ou forno",
              "tigelas para molhos"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Assar/grelhar a berinjela até macia e bem dourada."
              },
              {
                "order": 2,
                "instruction": "Preparar o componente de tomate até concentrar e esfriar levemente."
              },
              {
                "order": 3,
                "instruction": "Preparar o molho de iogurte zero lactose frio com os temperos autorizados."
              },
              {
                "order": 4,
                "instruction": "Montar em camadas apenas ao servir ou manter os molhos separados para marmita."
              }
            ],
            "source_time_reference": [
              "receita-fonte ~30 min total"
            ],
            "source_temperature_reference": [
              "calor alto para a berinjela; molhos em calor suave/frio"
            ],
            "texture_or_doneness_endpoint": [
              "berinjela macia; tomate espesso; iogurte frio e cremoso"
            ],
            "adaptation_guardrails": [
              "Usar apenas quantidades/ingredientes da versão adaptada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância.",
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "hambúrguer moldado, chapa ou air fryer; sem pão; berinjela assada/grelhada; molhos em camadas; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 2,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-31F2558DC1",
            "PM-SRC-0E25C4C87F"
          ]
        }
      }
    },
    "LEG-D21": {
      "id": "LEG-D21",
      "name": "Hambúrguer kofta caseiro + vagem com mostarda em grãos + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "hambúrguer moldado, chapa ou air fryer; sem pão; cozida al dente e envolvida em molho leve; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "cominho, coentro, salsa, alho; mostarda em grãos, vinagre, pimenta",
      "seasoning_refs": [
        "T004",
        "T098"
      ],
      "source_ids": [
        "SRC-31F2558DC1",
        "SRC-A67220CDDD"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: cominho, coentro, salsa, alho; mostarda em grãos, vinagre, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.6,
        "best_rating_count": 53,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008",
            "ING022",
            "ING024",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Hambúrguer kofta caseiro",
            "source_method_ids": [
              "PM-SRC-31F2558DC1"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "grelha/chapa ou air fryer",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne moída com as especiarias/ervas autorizadas até distribuir uniformemente, sem compactar em excesso."
              },
              {
                "order": 2,
                "instruction": "Moldar em cilindros, koftas, discos ou espetos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Grelhar/chapear ou usar air fryer, virando quando necessário para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir molho de iogurte/hortelã separado quando previsto; em versões ao tomate, terminar as koftas no molho reduzido."
              }
            ],
            "source_time_reference": [
              "fontes de kofta: normalmente ~20–50 min total conforme receita/formato"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente; molho em fervura suave"
            ],
            "texture_or_doneness_endpoint": [
              "superfície bem dourada; centro cozido; molho reduzido quando aplicável"
            ],
            "adaptation_guardrails": [
              "As fontes frequentemente usam cordeiro/pão; aqui manter a carne e ingredientes da nossa porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com mostarda em grãos",
            "source_method_ids": [
              "PM-SRC-A67220CDDD"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela",
              "frigideira rasa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem em água fervente até ficar verde viva e ainda com leve crocância."
              },
              {
                "order": 2,
                "instruction": "Amaciar o aromático autorizado na gordura prevista; adicionar mostarda e o componente cremoso apenas se houver."
              },
              {
                "order": 3,
                "instruction": "Adicionar vagem escorrida e limão, envolver rapidamente e servir."
              }
            ],
            "source_time_reference": [
              "fonte: vagem 4–5 min"
            ],
            "source_temperature_reference": [
              "fervura para vagem; calor moderado no molho"
            ],
            "texture_or_doneness_endpoint": [
              "vagem al dente, revestida por molho leve"
            ],
            "adaptation_guardrails": [
              "Crème fraîche da fonte pode ser omitido/trocado por iogurte zero lactose somente se isso constar na ficha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "hambúrguer moldado, chapa ou air fryer; sem pão; cozida al dente e envolvida em molho leve; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-31F2558DC1",
            "PM-SRC-A67220CDDD"
          ]
        }
      }
    },
    "LEG-D23": {
      "id": "LEG-D23",
      "name": "Almôndegas ao strogonoff + vagem ao limão e parmesão + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "almôndegas assadas/air fryer e finalizadas no molho; cozida al dente e finalizada com limão/parmesão; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "mostarda, páprica, pimenta; limão, pimenta",
      "seasoning_refs": [
        "T021",
        "T004",
        "T098"
      ],
      "source_ids": [
        "SRC-567AB4BDA3",
        "SRC-F0447AD9EA"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: mostarda, páprica, pimenta; limão, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 9,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING022",
            "ING024",
            "ING025",
            "ING027",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING005",
            "ING011"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING025",
              "raw_state": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
              "yield_factor": 0.44,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Almôndegas ao strogonoff",
            "source_method_ids": [
              "PM-SRC-567AB4BDA3"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "frigideira larga com tampa",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Temperar a carne crua moída autorizada e moldar almôndegas uniformes, sem compactar excessivamente."
              },
              {
                "order": 2,
                "instruction": "Dourar as almôndegas em todos os lados e reservar."
              },
              {
                "order": 3,
                "instruction": "Amaciar a cebola; adicionar alho e cogumelos e cozinhar até começarem a dourar."
              },
              {
                "order": 4,
                "instruction": "Adicionar os componentes de molho autorizados e cozinhar brevemente para retirar sabor cru; acrescentar o líquido permitido aos poucos."
              },
              {
                "order": 5,
                "instruction": "Retornar as almôndegas, tampar e cozinhar em fervura suave até o centro estar cozido; a fonte usa 15 min."
              },
              {
                "order": 6,
                "instruction": "Incorporar o iogurte/lácteo adaptado fora de fervura forte. A gramagem desta página já deve ser pesada antes da cocção; não é necessário repesar para porcionar."
              }
            ],
            "source_time_reference": [
              "fonte: ~15 min de fervura suave das almôndegas no molho após dourar"
            ],
            "source_temperature_reference": [
              "fogo médio para dourar; fervura suave para finalizar"
            ],
            "texture_or_doneness_endpoint": [
              "almôndegas douradas, cozidas no centro e molho cremoso"
            ],
            "adaptation_guardrails": [
              "A farinha, creme azedo e acompanhamentos da fonte não entram automaticamente. Usar apenas os componentes autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem ao limão e parmesão",
            "source_method_ids": [
              "PM-SRC-F0447AD9EA"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela/vaporizador",
              "tigela"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem brevemente até al dente; opcionalmente resfriar para preservar cor quando será armazenada."
              },
              {
                "order": 2,
                "instruction": "Secar bem."
              },
              {
                "order": 3,
                "instruction": "Misturar com limão/mostarda/azeite autorizados e finalizar com parmesão no momento de servir ou após reaquecer."
              }
            ],
            "source_time_reference": [
              "fonte: vapor ~5 min ou fervura ~3 min"
            ],
            "source_temperature_reference": [
              "cozimento curto"
            ],
            "texture_or_doneness_endpoint": [
              "vagem verde e firme; parmesão aderido sem virar pasta"
            ],
            "adaptation_guardrails": [
              "Usar somente a quantidade de parmesão/azeite contabilizada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "almôndegas assadas/air fryer e finalizadas no molho; cozida al dente e finalizada com limão/parmesão; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-567AB4BDA3",
            "PM-SRC-F0447AD9EA"
          ]
        }
      }
    },
    "LEG-D24": {
      "id": "LEG-D24",
      "name": "Almôndegas ao strogonoff + berinjela com tomate e iogurte + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "almôndegas assadas/air fryer e finalizadas no molho; berinjela assada/grelhada; molhos em camadas; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "mostarda, páprica, pimenta; alho, hortelã, pimenta",
      "seasoning_refs": [
        "T028",
        "T034",
        "T004"
      ],
      "source_ids": [
        "SRC-567AB4BDA3",
        "SRC-0E25C4C87F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: mostarda, páprica, pimenta; alho, hortelã, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 64,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING020",
            "ING023",
            "ING024",
            "ING025",
            "ING027",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING020",
              "raw_state": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
              "yield_factor": 0.94,
              "yield_source_id": "SRC-YIELD-USDA-AH102",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING025",
              "raw_state": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
              "yield_factor": 0.44,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Almôndegas ao strogonoff",
            "source_method_ids": [
              "PM-SRC-567AB4BDA3"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "frigideira larga com tampa",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Temperar a carne crua moída autorizada e moldar almôndegas uniformes, sem compactar excessivamente."
              },
              {
                "order": 2,
                "instruction": "Dourar as almôndegas em todos os lados e reservar."
              },
              {
                "order": 3,
                "instruction": "Amaciar a cebola; adicionar alho e cogumelos e cozinhar até começarem a dourar."
              },
              {
                "order": 4,
                "instruction": "Adicionar os componentes de molho autorizados e cozinhar brevemente para retirar sabor cru; acrescentar o líquido permitido aos poucos."
              },
              {
                "order": 5,
                "instruction": "Retornar as almôndegas, tampar e cozinhar em fervura suave até o centro estar cozido; a fonte usa 15 min."
              },
              {
                "order": 6,
                "instruction": "Incorporar o iogurte/lácteo adaptado fora de fervura forte. A gramagem desta página já deve ser pesada antes da cocção; não é necessário repesar para porcionar."
              }
            ],
            "source_time_reference": [
              "fonte: ~15 min de fervura suave das almôndegas no molho após dourar"
            ],
            "source_temperature_reference": [
              "fogo médio para dourar; fervura suave para finalizar"
            ],
            "texture_or_doneness_endpoint": [
              "almôndegas douradas, cozidas no centro e molho cremoso"
            ],
            "adaptation_guardrails": [
              "A farinha, creme azedo e acompanhamentos da fonte não entram automaticamente. Usar apenas os componentes autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "berinjela com tomate e iogurte",
            "source_method_ids": [
              "PM-SRC-0E25C4C87F"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "frigideira/grelha ou forno",
              "tigelas para molhos"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Assar/grelhar a berinjela até macia e bem dourada."
              },
              {
                "order": 2,
                "instruction": "Preparar o componente de tomate até concentrar e esfriar levemente."
              },
              {
                "order": 3,
                "instruction": "Preparar o molho de iogurte zero lactose frio com os temperos autorizados."
              },
              {
                "order": 4,
                "instruction": "Montar em camadas apenas ao servir ou manter os molhos separados para marmita."
              }
            ],
            "source_time_reference": [
              "receita-fonte ~30 min total"
            ],
            "source_temperature_reference": [
              "calor alto para a berinjela; molhos em calor suave/frio"
            ],
            "texture_or_doneness_endpoint": [
              "berinjela macia; tomate espesso; iogurte frio e cremoso"
            ],
            "adaptation_guardrails": [
              "Usar apenas quantidades/ingredientes da versão adaptada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância.",
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "almôndegas assadas/air fryer e finalizadas no molho; berinjela assada/grelhada; molhos em camadas; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-567AB4BDA3",
            "PM-SRC-0E25C4C87F"
          ]
        }
      }
    },
    "LEG-D25": {
      "id": "LEG-D25",
      "name": "Carne de panela leve + vagem com alho + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "pressão/cozimento lento; molho reduzido, sem farinha; salteada rapidamente, ainda firme; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "louro, alho, pimenta, tomilho; alho, pimenta",
      "seasoning_refs": [
        "T098"
      ],
      "source_ids": [
        "SRC-5F8FE8416C",
        "SRC-89DE384F5F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: louro, alho, pimenta, tomilho; alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 682,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING022",
            "ING023",
            "ING024",
            "ING027",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Carne de panela leve",
            "source_method_ids": [
              "PM-SRC-5F8FE8416C"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira",
              "panela de cozimento lento ou panela pesada"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar cebola/aromáticos autorizados e preparar a base do molho."
              },
              {
                "order": 2,
                "instruction": "Dourar a carne em lotes antes do cozimento lento para obter sabor de Maillard."
              },
              {
                "order": 3,
                "instruction": "Transferir para cozimento lento com os líquidos/temperos autorizados e cozinhar até a carne ficar muito macia."
              },
              {
                "order": 4,
                "instruction": "Se o molho estiver ralo, reduzir em panela aberta; a adaptação não usa farinha/amido quando não listado."
              }
            ],
            "source_time_reference": [
              "fonte: 8–10 h em low ou ~4 h em high"
            ],
            "source_temperature_reference": [
              "slow cooker low/high; selagem em frigideira quente"
            ],
            "texture_or_doneness_endpoint": [
              "carne muito macia; molho reduzido e aderente"
            ],
            "adaptation_guardrails": [
              "Omitir cenoura/celery/cornflour e outros itens não listados; pode usar pressão/cozimento lento equivalente conforme ficha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com alho",
            "source_method_ids": [
              "PM-SRC-89DE384F5F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "wok ou frigideira larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer a gordura contabilizada no wok/frigideira."
              },
              {
                "order": 2,
                "instruction": "Saltear a vagem em fogo alto por cerca de 5 min, até começar a dourar e continuar firme."
              },
              {
                "order": 3,
                "instruction": "Adicionar o alho e continuar apenas até o alho começar a dourar."
              },
              {
                "order": 4,
                "instruction": "Adicionar o molho/tempero autorizado no final e servir."
              }
            ],
            "source_time_reference": [
              "fonte: vagem ~5 min antes do alho"
            ],
            "source_temperature_reference": [
              "fogo alto"
            ],
            "texture_or_doneness_endpoint": [
              "vagem al dente com pontos dourados; alho dourado sem queimar"
            ],
            "adaptation_guardrails": [
              "Molho de ostra/soja só entra se estiver autorizado; não adicionar óleo além da porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "pressão/cozimento lento; molho reduzido, sem farinha; salteada rapidamente, ainda firme; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-5F8FE8416C",
            "PM-SRC-89DE384F5F"
          ]
        }
      }
    },
    "LEG-D26": {
      "id": "LEG-D26",
      "name": "Carne de panela leve + purê de couve-flor + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "pressão/cozimento lento; molho reduzido, sem farinha; cozida e processada; iogurte zero lactose para cremosidade; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "louro, alho, pimenta, tomilho; noz-moscada, alho, pimenta",
      "seasoning_refs": [
        "T028",
        "T098"
      ],
      "source_ids": [
        "SRC-5F8FE8416C",
        "SRC-98F3FC1410"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: louro, alho, pimenta, tomilho; noz-moscada, alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 2,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING019",
            "ING023",
            "ING024",
            "ING027",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING019",
              "raw_state": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
              "yield_factor": 0.98,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Carne de panela leve",
            "source_method_ids": [
              "PM-SRC-5F8FE8416C"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira",
              "panela de cozimento lento ou panela pesada"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar cebola/aromáticos autorizados e preparar a base do molho."
              },
              {
                "order": 2,
                "instruction": "Dourar a carne em lotes antes do cozimento lento para obter sabor de Maillard."
              },
              {
                "order": 3,
                "instruction": "Transferir para cozimento lento com os líquidos/temperos autorizados e cozinhar até a carne ficar muito macia."
              },
              {
                "order": 4,
                "instruction": "Se o molho estiver ralo, reduzir em panela aberta; a adaptação não usa farinha/amido quando não listado."
              }
            ],
            "source_time_reference": [
              "fonte: 8–10 h em low ou ~4 h em high"
            ],
            "source_temperature_reference": [
              "slow cooker low/high; selagem em frigideira quente"
            ],
            "texture_or_doneness_endpoint": [
              "carne muito macia; molho reduzido e aderente"
            ],
            "adaptation_guardrails": [
              "Omitir cenoura/celery/cornflour e outros itens não listados; pode usar pressão/cozimento lento equivalente conforme ficha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "purê de couve-flor",
            "source_method_ids": [
              "PM-SRC-98F3FC1410"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "panela ou vaporizador",
              "processador/liquidificador"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a couve-flor até ficar completamente macia."
              },
              {
                "order": 2,
                "instruction": "Escorrer e deixar o vapor sair para evitar purê aguado."
              },
              {
                "order": 3,
                "instruction": "Processar até liso com somente os componentes cremosos/gordura autorizados."
              },
              {
                "order": 4,
                "instruction": "Ajustar temperos e manter aquecido sem ferver vigorosamente."
              }
            ],
            "source_time_reference": [
              "fonte de purê; tempo depende do tamanho dos floretes"
            ],
            "source_temperature_reference": [
              "cozimento até maciez; processar quente"
            ],
            "texture_or_doneness_endpoint": [
              "purê liso, espesso e sem água livre"
            ],
            "adaptation_guardrails": [
              "Usar iogurte zero lactose apenas quando constar; sem farinha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "pressão/cozimento lento; molho reduzido, sem farinha; cozida e processada; iogurte zero lactose para cremosidade; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-5F8FE8416C",
            "PM-SRC-98F3FC1410"
          ]
        }
      }
    },
    "LEG-D28": {
      "id": "LEG-D28",
      "name": "Carne com cebola estilo pot-roast + vagem com amêndoas tostadas + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "cozimento lento com cebola bem dourada; vagem firme com amêndoas tostadas por cima; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "tomilho, alho, pimenta; alho, chalota/cebola em traço, pimenta",
      "seasoning_refs": [
        "T098"
      ],
      "source_ids": [
        "SRC-D0DC37E945",
        "SRC-E309A5D52B"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: tomilho, alho, pimenta; alho, chalota/cebola em traço, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 13,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING022",
            "ING024",
            "ING027",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Carne com cebola estilo pot-roast",
            "source_method_ids": [
              "PM-SRC-D0DC37E945"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "panela pesada com tampa ou slow cooker",
              "frigideira"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar bem a carne e retirar."
              },
              {
                "order": 2,
                "instruction": "Cozinhar a cebola até bem caramelizada/dourada, aproveitando o fundo da panela."
              },
              {
                "order": 3,
                "instruction": "Retornar a carne com o líquido/temperos autorizados e cozinhar lentamente, tampado, até macia."
              },
              {
                "order": 4,
                "instruction": "Retirar a carne, descansar/fatiar e reduzir o molho de cebola se necessário."
              }
            ],
            "source_time_reference": [
              "fonte de pot-roast/cozimento lento; tempo depende do corte e equipamento"
            ],
            "source_temperature_reference": [
              "selagem alta; cozimento baixo e lento"
            ],
            "texture_or_doneness_endpoint": [
              "carne macia; cebola bem dourada; molho concentrado"
            ],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da gravy original que não estejam autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com amêndoas tostadas",
            "source_method_ids": [
              "PM-SRC-E309A5D52B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela",
              "frigideira"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem até al dente, escorrer e secar."
              },
              {
                "order": 2,
                "instruction": "Amaciar cebola/shallot e alho lentamente na gordura prevista sem deixar queimar."
              },
              {
                "order": 3,
                "instruction": "Adicionar a vagem apenas para aquecer e envolver."
              },
              {
                "order": 4,
                "instruction": "Finalizar com limão e amêndoas tostadas; para marmita, manter as amêndoas separadas até servir."
              }
            ],
            "source_time_reference": [
              "fonte: aromáticos ~8 min; vagem cozida previamente"
            ],
            "source_temperature_reference": [
              "calor suave para aromáticos"
            ],
            "texture_or_doneness_endpoint": [
              "vagem firme; amêndoas crocantes"
            ],
            "adaptation_guardrails": [
              "Quantidade de amêndoa e azeite deve seguir a porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "cozimento lento com cebola bem dourada; vagem firme com amêndoas tostadas por cima; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-D0DC37E945",
            "PM-SRC-E309A5D52B"
          ]
        }
      }
    },
    "LEG-D30": {
      "id": "LEG-D30",
      "name": "Carne com cebola estilo pot-roast + vagem com alho + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "cozimento lento com cebola bem dourada; salteada rapidamente, ainda firme; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "tomilho, alho, pimenta; alho, pimenta",
      "seasoning_refs": [
        "T098"
      ],
      "source_ids": [
        "SRC-D0DC37E945",
        "SRC-89DE384F5F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: tomilho, alho, pimenta; alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 24,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING022",
            "ING024",
            "ING027",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Carne com cebola estilo pot-roast",
            "source_method_ids": [
              "PM-SRC-D0DC37E945"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "panela pesada com tampa ou slow cooker",
              "frigideira"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar bem a carne e retirar."
              },
              {
                "order": 2,
                "instruction": "Cozinhar a cebola até bem caramelizada/dourada, aproveitando o fundo da panela."
              },
              {
                "order": 3,
                "instruction": "Retornar a carne com o líquido/temperos autorizados e cozinhar lentamente, tampado, até macia."
              },
              {
                "order": 4,
                "instruction": "Retirar a carne, descansar/fatiar e reduzir o molho de cebola se necessário."
              }
            ],
            "source_time_reference": [
              "fonte de pot-roast/cozimento lento; tempo depende do corte e equipamento"
            ],
            "source_temperature_reference": [
              "selagem alta; cozimento baixo e lento"
            ],
            "texture_or_doneness_endpoint": [
              "carne macia; cebola bem dourada; molho concentrado"
            ],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da gravy original que não estejam autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com alho",
            "source_method_ids": [
              "PM-SRC-89DE384F5F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "wok ou frigideira larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer a gordura contabilizada no wok/frigideira."
              },
              {
                "order": 2,
                "instruction": "Saltear a vagem em fogo alto por cerca de 5 min, até começar a dourar e continuar firme."
              },
              {
                "order": 3,
                "instruction": "Adicionar o alho e continuar apenas até o alho começar a dourar."
              },
              {
                "order": 4,
                "instruction": "Adicionar o molho/tempero autorizado no final e servir."
              }
            ],
            "source_time_reference": [
              "fonte: vagem ~5 min antes do alho"
            ],
            "source_temperature_reference": [
              "fogo alto"
            ],
            "texture_or_doneness_endpoint": [
              "vagem al dente com pontos dourados; alho dourado sem queimar"
            ],
            "adaptation_guardrails": [
              "Molho de ostra/soja só entra se estiver autorizado; não adicionar óleo além da porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "cozimento lento com cebola bem dourada; salteada rapidamente, ainda firme; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-D0DC37E945",
            "PM-SRC-89DE384F5F"
          ]
        }
      }
    },
    "LEG-D32": {
      "id": "LEG-D32",
      "name": "Frango churrasco de limão e alho + brócolis assado + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "grelhado em filé ou cubos; sem fritura por imersão; forno/air fryer, pontas tostadas; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "limão, alho, páprica, pimenta; alho, pimenta, limão opcional",
      "seasoning_refs": [
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-EC9CFA9DDA",
        "SRC-D97E9277C4"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão, alho, páprica, pimenta; alho, pimenta, limão opcional — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.9,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING018",
            "ING027",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING018",
              "raw_state": "Brócolis cru, aparado e pronto para cozinhar",
              "yield_factor": 1.0,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango churrasco de limão e alho",
            "source_method_ids": [
              "PM-SRC-EC9CFA9DDA"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela não metálica",
              "grelha/chapa ou grill",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro."
              },
              {
                "order": 3,
                "instruction": "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada."
              },
              {
                "order": 4,
                "instruction": "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h"
            ],
            "source_temperature_reference": [
              "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido"
            ],
            "texture_or_doneness_endpoint": [
              "bem dourado por fora e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
              "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "brócolis assado",
            "source_method_ids": [
              "PM-SRC-D97E9277C4"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar bem o brócolis, misturar com a quantidade de azeite prevista e temperos."
              },
              {
                "order": 2,
                "instruction": "Espalhar em camada única sem amontoar."
              },
              {
                "order": 3,
                "instruction": "Assar até macio no interior e com pontas/bordas tostadas, movimentando a assadeira aproximadamente na metade."
              }
            ],
            "source_time_reference": [
              "25–30 min"
            ],
            "source_temperature_reference": [
              "180°C / 160°C ventilado na fonte"
            ],
            "texture_or_doneness_endpoint": [
              "macio com bordas crocantes/tostadas"
            ],
            "adaptation_guardrails": [
              "Limão/alho entram apenas conforme tempero autorizado.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "grelhado em filé ou cubos; sem fritura por imersão; forno/air fryer, pontas tostadas; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-EC9CFA9DDA",
            "PM-SRC-D97E9277C4"
          ]
        }
      }
    },
    "LEG-D33": {
      "id": "LEG-D33",
      "name": "Frango churrasco de limão e alho + vagem com amêndoas tostadas + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "grelhado em filé ou cubos; sem fritura por imersão; vagem firme com amêndoas tostadas por cima; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "limão, alho, páprica, pimenta; alho, chalota/cebola em traço, pimenta",
      "seasoning_refs": [
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-EC9CFA9DDA",
        "SRC-E309A5D52B"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão, alho, páprica, pimenta; alho, chalota/cebola em traço, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.9,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING022",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango churrasco de limão e alho",
            "source_method_ids": [
              "PM-SRC-EC9CFA9DDA"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela não metálica",
              "grelha/chapa ou grill",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro."
              },
              {
                "order": 3,
                "instruction": "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada."
              },
              {
                "order": 4,
                "instruction": "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h"
            ],
            "source_temperature_reference": [
              "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido"
            ],
            "texture_or_doneness_endpoint": [
              "bem dourado por fora e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
              "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com amêndoas tostadas",
            "source_method_ids": [
              "PM-SRC-E309A5D52B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela",
              "frigideira"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem até al dente, escorrer e secar."
              },
              {
                "order": 2,
                "instruction": "Amaciar cebola/shallot e alho lentamente na gordura prevista sem deixar queimar."
              },
              {
                "order": 3,
                "instruction": "Adicionar a vagem apenas para aquecer e envolver."
              },
              {
                "order": 4,
                "instruction": "Finalizar com limão e amêndoas tostadas; para marmita, manter as amêndoas separadas até servir."
              }
            ],
            "source_time_reference": [
              "fonte: aromáticos ~8 min; vagem cozida previamente"
            ],
            "source_temperature_reference": [
              "calor suave para aromáticos"
            ],
            "texture_or_doneness_endpoint": [
              "vagem firme; amêndoas crocantes"
            ],
            "adaptation_guardrails": [
              "Quantidade de amêndoa e azeite deve seguir a porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "grelhado em filé ou cubos; sem fritura por imersão; vagem firme com amêndoas tostadas por cima; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-EC9CFA9DDA",
            "PM-SRC-E309A5D52B"
          ]
        }
      }
    },
    "LEG-D35": {
      "id": "LEG-D35",
      "name": "Paillard de frango com limão e ervas + vagem com mostarda em grãos + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "filé fino e grelhado em chapa muito quente; cozida al dente e envolvida em molho leve; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "limão, salsa, ervas; mostarda em grãos, vinagre, pimenta",
      "seasoning_refs": [
        "T021",
        "T004",
        "T098"
      ],
      "source_ids": [
        "SRC-1A3490590C",
        "SRC-A67220CDDD"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão, salsa, ervas; mostarda em grãos, vinagre, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 43,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING022",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Paillard de frango com limão e ervas",
            "source_method_ids": [
              "PM-SRC-1A3490590C"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "martelo de carne ou rolo",
              "papel manteiga/filme",
              "grelha/chapa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Achatar o peito entre folhas até espessura uniforme de aproximadamente 0,5 cm."
              },
              {
                "order": 2,
                "instruction": "Misturar alho, ervas, limão, azeite e temperos autorizados; cobrir o frango e marinar sob refrigeração."
              },
              {
                "order": 3,
                "instruction": "Grelhar rapidamente em superfície muito quente, virando uma vez."
              },
              {
                "order": 4,
                "instruction": "Descansar por alguns minutos antes de servir ou fatiar."
              }
            ],
            "source_time_reference": [
              "marinada ≥2 h; fonte: 1–2 min por lado para 0,5 cm"
            ],
            "source_temperature_reference": [
              "grelha/chapa muito quente"
            ],
            "texture_or_doneness_endpoint": [
              "marcas de grelha e centro cozido sem ressecar"
            ],
            "adaptation_guardrails": [
              "O tempo de 1–2 min/lado pressupõe a espessura fina da fonte.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com mostarda em grãos",
            "source_method_ids": [
              "PM-SRC-A67220CDDD"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela",
              "frigideira rasa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem em água fervente até ficar verde viva e ainda com leve crocância."
              },
              {
                "order": 2,
                "instruction": "Amaciar o aromático autorizado na gordura prevista; adicionar mostarda e o componente cremoso apenas se houver."
              },
              {
                "order": 3,
                "instruction": "Adicionar vagem escorrida e limão, envolver rapidamente e servir."
              }
            ],
            "source_time_reference": [
              "fonte: vagem 4–5 min"
            ],
            "source_temperature_reference": [
              "fervura para vagem; calor moderado no molho"
            ],
            "texture_or_doneness_endpoint": [
              "vagem al dente, revestida por molho leve"
            ],
            "adaptation_guardrails": [
              "Crème fraîche da fonte pode ser omitido/trocado por iogurte zero lactose somente se isso constar na ficha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "filé fino e grelhado em chapa muito quente; cozida al dente e envolvida em molho leve; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-1A3490590C",
            "PM-SRC-A67220CDDD"
          ]
        }
      }
    },
    "LEG-D37": {
      "id": "LEG-D37",
      "name": "Frango ao limão e orégano + vagem ao limão e parmesão + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "assado em cubos ou tiras, dourando bem as bordas; cozida al dente e finalizada com limão/parmesão; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "limão, orégano, alho; limão, pimenta",
      "seasoning_refs": [
        "T021",
        "T098",
        "T017"
      ],
      "source_ids": [
        "SRC-E54E273CF8",
        "SRC-F0447AD9EA"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão, orégano, alho; limão, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 9,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING022",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango ao limão e orégano",
            "source_method_ids": [
              "PM-SRC-E54E273CF8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Temperar o frango com limão, orégano e a gordura prevista."
              },
              {
                "order": 2,
                "instruction": "Assar em assadeira quente, deixando espaço entre os pedaços para dourar."
              },
              {
                "order": 3,
                "instruction": "Virar/reorganizar se necessário e retirar quando dourado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte para coxas usa etapas de 20 min e total ~40 min após entrar o frango"
            ],
            "source_temperature_reference": [
              "220°C / 200°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A adaptação normalmente usa peito/cubos e remove batata, bacon, vinho e caldo; portanto o tempo da fonte não é transferível literalmente.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem ao limão e parmesão",
            "source_method_ids": [
              "PM-SRC-F0447AD9EA"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela/vaporizador",
              "tigela"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem brevemente até al dente; opcionalmente resfriar para preservar cor quando será armazenada."
              },
              {
                "order": 2,
                "instruction": "Secar bem."
              },
              {
                "order": 3,
                "instruction": "Misturar com limão/mostarda/azeite autorizados e finalizar com parmesão no momento de servir ou após reaquecer."
              }
            ],
            "source_time_reference": [
              "fonte: vapor ~5 min ou fervura ~3 min"
            ],
            "source_temperature_reference": [
              "cozimento curto"
            ],
            "texture_or_doneness_endpoint": [
              "vagem verde e firme; parmesão aderido sem virar pasta"
            ],
            "adaptation_guardrails": [
              "Usar somente a quantidade de parmesão/azeite contabilizada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "assado em cubos ou tiras, dourando bem as bordas; cozida al dente e finalizada com limão/parmesão; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E54E273CF8",
            "PM-SRC-F0447AD9EA"
          ]
        }
      }
    },
    "LEG-D38": {
      "id": "LEG-D38",
      "name": "Frango ao limão e orégano + berinjela com tomate e iogurte + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "assado em cubos ou tiras, dourando bem as bordas; berinjela assada/grelhada; molhos em camadas; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "limão, orégano, alho; alho, hortelã, pimenta",
      "seasoning_refs": [
        "T028",
        "T034",
        "T021"
      ],
      "source_ids": [
        "SRC-E54E273CF8",
        "SRC-0E25C4C87F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão, orégano, alho; alho, hortelã, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 141,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING020",
            "ING023",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING020",
              "raw_state": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
              "yield_factor": 0.94,
              "yield_source_id": "SRC-YIELD-USDA-AH102",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango ao limão e orégano",
            "source_method_ids": [
              "PM-SRC-E54E273CF8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Temperar o frango com limão, orégano e a gordura prevista."
              },
              {
                "order": 2,
                "instruction": "Assar em assadeira quente, deixando espaço entre os pedaços para dourar."
              },
              {
                "order": 3,
                "instruction": "Virar/reorganizar se necessário e retirar quando dourado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte para coxas usa etapas de 20 min e total ~40 min após entrar o frango"
            ],
            "source_temperature_reference": [
              "220°C / 200°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A adaptação normalmente usa peito/cubos e remove batata, bacon, vinho e caldo; portanto o tempo da fonte não é transferível literalmente.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "berinjela com tomate e iogurte",
            "source_method_ids": [
              "PM-SRC-0E25C4C87F"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "frigideira/grelha ou forno",
              "tigelas para molhos"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Assar/grelhar a berinjela até macia e bem dourada."
              },
              {
                "order": 2,
                "instruction": "Preparar o componente de tomate até concentrar e esfriar levemente."
              },
              {
                "order": 3,
                "instruction": "Preparar o molho de iogurte zero lactose frio com os temperos autorizados."
              },
              {
                "order": 4,
                "instruction": "Montar em camadas apenas ao servir ou manter os molhos separados para marmita."
              }
            ],
            "source_time_reference": [
              "receita-fonte ~30 min total"
            ],
            "source_temperature_reference": [
              "calor alto para a berinjela; molhos em calor suave/frio"
            ],
            "texture_or_doneness_endpoint": [
              "berinjela macia; tomate espesso; iogurte frio e cremoso"
            ],
            "adaptation_guardrails": [
              "Usar apenas quantidades/ingredientes da versão adaptada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância.",
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "assado em cubos ou tiras, dourando bem as bordas; berinjela assada/grelhada; molhos em camadas; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E54E273CF8",
            "PM-SRC-0E25C4C87F"
          ]
        }
      }
    },
    "LEG-D40": {
      "id": "LEG-D40",
      "name": "Frango tikka com iogurte zero lactose + vagem com amêndoas tostadas + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "marinado e grelhado/espetado; vagem firme com amêndoas tostadas por cima; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "garam masala/curry, gengibre, alho, limão; alho, chalota/cebola em traço, pimenta",
      "seasoning_refs": [
        "T028",
        "T099",
        "T021"
      ],
      "source_ids": [
        "SRC-BF10506C58",
        "SRC-E309A5D52B"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: garam masala/curry, gengibre, alho, limão; alho, chalota/cebola em traço, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 84,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING022",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango tikka com iogurte zero lactose",
            "source_method_ids": [
              "PM-SRC-BF10506C58"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "espetos",
              "grill/forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte e pasta/especiarias tikka autorizadas; envolver os cubos de frango."
              },
              {
                "order": 2,
                "instruction": "Marinar por cerca de 1 h quando possível."
              },
              {
                "order": 3,
                "instruction": "Retirar excesso de marinada, colocar nos espetos e grelhar, virando periodicamente."
              },
              {
                "order": 4,
                "instruction": "Retirar quando bem dourado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte: 15–20 min sob grill médio; marinada opcional ~1 h"
            ],
            "source_temperature_reference": [
              "grill médio"
            ],
            "texture_or_doneness_endpoint": [
              "bordas douradas e centro cozido"
            ],
            "adaptation_guardrails": [
              "Usar iogurte zero lactose; tomate/chapati/salada da fonte não entram salvo se listados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com amêndoas tostadas",
            "source_method_ids": [
              "PM-SRC-E309A5D52B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela",
              "frigideira"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem até al dente, escorrer e secar."
              },
              {
                "order": 2,
                "instruction": "Amaciar cebola/shallot e alho lentamente na gordura prevista sem deixar queimar."
              },
              {
                "order": 3,
                "instruction": "Adicionar a vagem apenas para aquecer e envolver."
              },
              {
                "order": 4,
                "instruction": "Finalizar com limão e amêndoas tostadas; para marmita, manter as amêndoas separadas até servir."
              }
            ],
            "source_time_reference": [
              "fonte: aromáticos ~8 min; vagem cozida previamente"
            ],
            "source_temperature_reference": [
              "calor suave para aromáticos"
            ],
            "texture_or_doneness_endpoint": [
              "vagem firme; amêndoas crocantes"
            ],
            "adaptation_guardrails": [
              "Quantidade de amêndoa e azeite deve seguir a porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "marinado e grelhado/espetado; vagem firme com amêndoas tostadas por cima; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-BF10506C58",
            "PM-SRC-E309A5D52B"
          ]
        }
      }
    },
    "LEG-D42": {
      "id": "LEG-D42",
      "name": "Frango tikka com iogurte zero lactose + vagem com mostarda em grãos + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "marinado e grelhado/espetado; cozida al dente e envolvida em molho leve; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "garam masala/curry, gengibre, alho, limão; mostarda em grãos, vinagre, pimenta",
      "seasoning_refs": [
        "T028",
        "T099",
        "T021"
      ],
      "source_ids": [
        "SRC-BF10506C58",
        "SRC-A67220CDDD"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: garam masala/curry, gengibre, alho, limão; mostarda em grãos, vinagre, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 84,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING022",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango tikka com iogurte zero lactose",
            "source_method_ids": [
              "PM-SRC-BF10506C58"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "espetos",
              "grill/forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte e pasta/especiarias tikka autorizadas; envolver os cubos de frango."
              },
              {
                "order": 2,
                "instruction": "Marinar por cerca de 1 h quando possível."
              },
              {
                "order": 3,
                "instruction": "Retirar excesso de marinada, colocar nos espetos e grelhar, virando periodicamente."
              },
              {
                "order": 4,
                "instruction": "Retirar quando bem dourado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte: 15–20 min sob grill médio; marinada opcional ~1 h"
            ],
            "source_temperature_reference": [
              "grill médio"
            ],
            "texture_or_doneness_endpoint": [
              "bordas douradas e centro cozido"
            ],
            "adaptation_guardrails": [
              "Usar iogurte zero lactose; tomate/chapati/salada da fonte não entram salvo se listados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com mostarda em grãos",
            "source_method_ids": [
              "PM-SRC-A67220CDDD"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela",
              "frigideira rasa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem em água fervente até ficar verde viva e ainda com leve crocância."
              },
              {
                "order": 2,
                "instruction": "Amaciar o aromático autorizado na gordura prevista; adicionar mostarda e o componente cremoso apenas se houver."
              },
              {
                "order": 3,
                "instruction": "Adicionar vagem escorrida e limão, envolver rapidamente e servir."
              }
            ],
            "source_time_reference": [
              "fonte: vagem 4–5 min"
            ],
            "source_temperature_reference": [
              "fervura para vagem; calor moderado no molho"
            ],
            "texture_or_doneness_endpoint": [
              "vagem al dente, revestida por molho leve"
            ],
            "adaptation_guardrails": [
              "Crème fraîche da fonte pode ser omitido/trocado por iogurte zero lactose somente se isso constar na ficha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "marinado e grelhado/espetado; cozida al dente e envolvida em molho leve; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-BF10506C58",
            "PM-SRC-A67220CDDD"
          ]
        }
      }
    },
    "LEG-D44": {
      "id": "LEG-D44",
      "name": "Frango souvlaki + vagem com alho + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "espetos ou cubos muito bem dourados; salteada rapidamente, ainda firme; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "limão, alho, orégano; alho, pimenta",
      "seasoning_refs": [
        "T002",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-48B8FB322E",
        "SRC-89DE384F5F"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão, alho, orégano; alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 230,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING022",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango souvlaki",
            "source_method_ids": [
              "PM-SRC-48B8FB322E"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "espetos ou frigideira/grelha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cortar o frango em pedaços uniformes e envolver com limão, alho, orégano/ervas e gordura autorizada."
              },
              {
                "order": 2,
                "instruction": "Marinar quando a ficha permitir."
              },
              {
                "order": 3,
                "instruction": "Grelhar em espetos ou em frigideira bem quente em camada única, virando para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir o molho de iogurte separadamente quando previsto."
              }
            ],
            "source_time_reference": [
              "fonte de família de barbecue/souvlaki; tempo varia com o corte"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "cubos/tiras bem dourados e cozidos"
            ],
            "adaptation_guardrails": [
              "Não usar pão, beterraba ou acompanhamentos da fonte que não constem na alternativa.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com alho",
            "source_method_ids": [
              "PM-SRC-89DE384F5F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "wok ou frigideira larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer a gordura contabilizada no wok/frigideira."
              },
              {
                "order": 2,
                "instruction": "Saltear a vagem em fogo alto por cerca de 5 min, até começar a dourar e continuar firme."
              },
              {
                "order": 3,
                "instruction": "Adicionar o alho e continuar apenas até o alho começar a dourar."
              },
              {
                "order": 4,
                "instruction": "Adicionar o molho/tempero autorizado no final e servir."
              }
            ],
            "source_time_reference": [
              "fonte: vagem ~5 min antes do alho"
            ],
            "source_temperature_reference": [
              "fogo alto"
            ],
            "texture_or_doneness_endpoint": [
              "vagem al dente com pontos dourados; alho dourado sem queimar"
            ],
            "adaptation_guardrails": [
              "Molho de ostra/soja só entra se estiver autorizado; não adicionar óleo além da porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "espetos ou cubos muito bem dourados; salteada rapidamente, ainda firme; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-48B8FB322E",
            "PM-SRC-89DE384F5F"
          ]
        }
      }
    },
    "LEG-D45": {
      "id": "LEG-D45",
      "name": "Frango souvlaki + purê de couve-flor + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "espetos ou cubos muito bem dourados; cozida e processada; iogurte zero lactose para cremosidade; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "limão, alho, orégano; noz-moscada, alho, pimenta",
      "seasoning_refs": [
        "T002",
        "T028",
        "T021"
      ],
      "source_ids": [
        "SRC-48B8FB322E",
        "SRC-98F3FC1410"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: limão, alho, orégano; noz-moscada, alho, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 2,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING019",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING019",
              "raw_state": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
              "yield_factor": 0.98,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango souvlaki",
            "source_method_ids": [
              "PM-SRC-48B8FB322E"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "espetos ou frigideira/grelha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cortar o frango em pedaços uniformes e envolver com limão, alho, orégano/ervas e gordura autorizada."
              },
              {
                "order": 2,
                "instruction": "Marinar quando a ficha permitir."
              },
              {
                "order": 3,
                "instruction": "Grelhar em espetos ou em frigideira bem quente em camada única, virando para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir o molho de iogurte separadamente quando previsto."
              }
            ],
            "source_time_reference": [
              "fonte de família de barbecue/souvlaki; tempo varia com o corte"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "cubos/tiras bem dourados e cozidos"
            ],
            "adaptation_guardrails": [
              "Não usar pão, beterraba ou acompanhamentos da fonte que não constem na alternativa.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "purê de couve-flor",
            "source_method_ids": [
              "PM-SRC-98F3FC1410"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "panela ou vaporizador",
              "processador/liquidificador"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a couve-flor até ficar completamente macia."
              },
              {
                "order": 2,
                "instruction": "Escorrer e deixar o vapor sair para evitar purê aguado."
              },
              {
                "order": 3,
                "instruction": "Processar até liso com somente os componentes cremosos/gordura autorizados."
              },
              {
                "order": 4,
                "instruction": "Ajustar temperos e manter aquecido sem ferver vigorosamente."
              }
            ],
            "source_time_reference": [
              "fonte de purê; tempo depende do tamanho dos floretes"
            ],
            "source_temperature_reference": [
              "cozimento até maciez; processar quente"
            ],
            "texture_or_doneness_endpoint": [
              "purê liso, espesso e sem água livre"
            ],
            "adaptation_guardrails": [
              "Usar iogurte zero lactose apenas quando constar; sem farinha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "espetos ou cubos muito bem dourados; cozida e processada; iogurte zero lactose para cremosidade; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 2,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-48B8FB322E",
            "PM-SRC-98F3FC1410"
          ]
        }
      }
    },
    "LEG-D46": {
      "id": "LEG-D46",
      "name": "Frango gyros + brócolis assado + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "tiras bem douradas; molho frio separado para marmita; forno/air fryer, pontas tostadas; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "orégano, alho, limão, páprica; alho, pimenta, limão opcional",
      "seasoning_refs": [
        "T002",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-E18543333B",
        "SRC-D97E9277C4"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: orégano, alho, limão, páprica; alho, pimenta, limão opcional — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.6,
        "best_rating_count": 100,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING018",
            "ING027",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING018",
              "raw_state": "Brócolis cru, aparado e pronto para cozinhar",
              "yield_factor": 1.0,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango gyros",
            "source_method_ids": [
              "PM-SRC-E18543333B"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "espetos ou frigideira/grelha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cortar o frango em pedaços uniformes e envolver com limão, alho, orégano/ervas e gordura autorizada."
              },
              {
                "order": 2,
                "instruction": "Marinar quando a ficha permitir."
              },
              {
                "order": 3,
                "instruction": "Grelhar em espetos ou em frigideira bem quente em camada única, virando para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir o molho de iogurte separadamente quando previsto."
              }
            ],
            "source_time_reference": [
              "fonte de família de barbecue/souvlaki; tempo varia com o corte"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "cubos/tiras bem dourados e cozidos"
            ],
            "adaptation_guardrails": [
              "Não usar pão, beterraba ou acompanhamentos da fonte que não constem na alternativa.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "brócolis assado",
            "source_method_ids": [
              "PM-SRC-D97E9277C4"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar bem o brócolis, misturar com a quantidade de azeite prevista e temperos."
              },
              {
                "order": 2,
                "instruction": "Espalhar em camada única sem amontoar."
              },
              {
                "order": 3,
                "instruction": "Assar até macio no interior e com pontas/bordas tostadas, movimentando a assadeira aproximadamente na metade."
              }
            ],
            "source_time_reference": [
              "25–30 min"
            ],
            "source_temperature_reference": [
              "180°C / 160°C ventilado na fonte"
            ],
            "texture_or_doneness_endpoint": [
              "macio com bordas crocantes/tostadas"
            ],
            "adaptation_guardrails": [
              "Limão/alho entram apenas conforme tempero autorizado.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância.",
          "Embalar molho frio separadamente e adicionar apenas no consumo."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "tiras bem douradas; molho frio separado para marmita; forno/air fryer, pontas tostadas; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E18543333B",
            "PM-SRC-D97E9277C4"
          ]
        }
      }
    },
    "LEG-D47": {
      "id": "LEG-D47",
      "name": "Frango gyros + vagem com amêndoas tostadas + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "tiras bem douradas; molho frio separado para marmita; vagem firme com amêndoas tostadas por cima; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "orégano, alho, limão, páprica; alho, chalota/cebola em traço, pimenta",
      "seasoning_refs": [
        "T002",
        "T021",
        "T098"
      ],
      "source_ids": [
        "SRC-E18543333B",
        "SRC-E309A5D52B"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: orégano, alho, limão, páprica; alho, chalota/cebola em traço, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.8,
        "best_rating_count": 13,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING022",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango gyros",
            "source_method_ids": [
              "PM-SRC-E18543333B"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "tigela",
              "espetos ou frigideira/grelha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cortar o frango em pedaços uniformes e envolver com limão, alho, orégano/ervas e gordura autorizada."
              },
              {
                "order": 2,
                "instruction": "Marinar quando a ficha permitir."
              },
              {
                "order": 3,
                "instruction": "Grelhar em espetos ou em frigideira bem quente em camada única, virando para dourar todos os lados."
              },
              {
                "order": 4,
                "instruction": "Servir o molho de iogurte separadamente quando previsto."
              }
            ],
            "source_time_reference": [
              "fonte de família de barbecue/souvlaki; tempo varia com o corte"
            ],
            "source_temperature_reference": [
              "grelha/chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "cubos/tiras bem dourados e cozidos"
            ],
            "adaptation_guardrails": [
              "Não usar pão, beterraba ou acompanhamentos da fonte que não constem na alternativa.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com amêndoas tostadas",
            "source_method_ids": [
              "PM-SRC-E309A5D52B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela",
              "frigideira"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem até al dente, escorrer e secar."
              },
              {
                "order": 2,
                "instruction": "Amaciar cebola/shallot e alho lentamente na gordura prevista sem deixar queimar."
              },
              {
                "order": 3,
                "instruction": "Adicionar a vagem apenas para aquecer e envolver."
              },
              {
                "order": 4,
                "instruction": "Finalizar com limão e amêndoas tostadas; para marmita, manter as amêndoas separadas até servir."
              }
            ],
            "source_time_reference": [
              "fonte: aromáticos ~8 min; vagem cozida previamente"
            ],
            "source_temperature_reference": [
              "calor suave para aromáticos"
            ],
            "texture_or_doneness_endpoint": [
              "vagem firme; amêndoas crocantes"
            ],
            "adaptation_guardrails": [
              "Quantidade de amêndoa e azeite deve seguir a porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância.",
          "Embalar molho frio separadamente e adicionar apenas no consumo."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "tiras bem douradas; molho frio separado para marmita; vagem firme com amêndoas tostadas por cima; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E18543333B",
            "PM-SRC-E309A5D52B"
          ]
        }
      }
    },
    "LEG-D50": {
      "id": "LEG-D50",
      "name": "Frango jerk + vagem com mostarda em grãos + folhas",
      "category": "dinner",
      "origin": "legacy_docx",
      "method_overview": "marinado e assado/grelhado; cozida al dente e envolvida em molho leve; amêndoa, quando presente, adicionada após reaquecer",
      "seasoning_text": "tomilho, pimenta-da-jamaica, chilli, alho, gengibre; mostarda em grãos, vinagre, pimenta",
      "seasoning_refs": [
        "T101",
        "T004",
        "T098"
      ],
      "source_ids": [
        "SRC-BA7CAF57D8",
        "SRC-A67220CDDD"
      ],
      "adaptation_notes": "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados. Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados.",
      "trace_ingredients": [
        "Aromáticos/ácidos em traço: tomilho, pimenta-da-jamaica, chilli, alho, gengibre; mostarda em grãos, vinagre, pimenta — contribuição energética não modelada individualmente; manter uso culinário pequeno (<~5 kcal agregado)."
      ],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.5,
        "best_rating_count": 9,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006",
            "ING022",
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango jerk",
            "source_method_ids": [
              "PM-SRC-BA7CAF57D8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador ou pilão",
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Processar/misturar os temperos jerk, alho, gengibre, tomilho, pimenta e limão/lima autorizados até formar pasta."
              },
              {
                "order": 2,
                "instruction": "Cobrir o frango uniformemente com a pasta."
              },
              {
                "order": 3,
                "instruction": "Assar ou grelhar até dourar e cozinhar por completo."
              }
            ],
            "source_time_reference": [
              "fonte para coxas com osso: 45–50 min"
            ],
            "source_temperature_reference": [
              "200°C / 180°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado, aromático e cozido"
            ],
            "adaptation_guardrails": [
              "Coconut cream e demais ingredientes da fonte só entram se constarem na adaptação; tempo da coxa não deve ser aplicado ao peito.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "vagem com mostarda em grãos",
            "source_method_ids": [
              "PM-SRC-A67220CDDD"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela",
              "frigideira rasa"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem em água fervente até ficar verde viva e ainda com leve crocância."
              },
              {
                "order": 2,
                "instruction": "Amaciar o aromático autorizado na gordura prevista; adicionar mostarda e o componente cremoso apenas se houver."
              },
              {
                "order": 3,
                "instruction": "Adicionar vagem escorrida e limão, envolver rapidamente e servir."
              }
            ],
            "source_time_reference": [
              "fonte: vagem 4–5 min"
            ],
            "source_temperature_reference": [
              "fervura para vagem; calor moderado no molho"
            ],
            "texture_or_doneness_endpoint": [
              "vagem al dente, revestida por molho leve"
            ],
            "adaptation_guardrails": [
              "Crème fraîche da fonte pode ser omitido/trocado por iogurte zero lactose somente se isso constar na ficha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          },
          {
            "name": "folhas",
            "source_method_ids": [],
            "grounding_level": "recipe_assembly_rule",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Manter as folhas cruas separadas dos componentes quentes até servir, para preservar a textura."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Adicionar amêndoas após o reaquecimento/na hora de servir para manter crocância."
        ],
        "adaptation_application": [
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Quantidades ajustadas proporcionalmente ao alvo; técnica e perfil de tempero preservados.",
          "Amêndoa/azeite são ajustadores deliberados de gordura, sempre pesados."
        ],
        "original_method_overview": "marinado e assado/grelhado; cozida al dente e envolvida em molho leve; amêndoa, quando presente, adicionada após reaquecer",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-BA7CAF57D8",
            "PM-SRC-A67220CDDD"
          ]
        }
      }
    },
    "NEW-MAIN-M01": {
      "id": "NEW-MAIN-M01",
      "name": "Strogonoff bovino leve",
      "category": "main",
      "origin": "generated_v3",
      "method_overview": "carne selada; molho curto; iogurte entra fora do fogo",
      "seasoning_text": "mostarda, páprica, cogumelos",
      "seasoning_refs": [
        "T094"
      ],
      "source_ids": [
        "SRC-8AB2C3072E"
      ],
      "adaptation_notes": "Porções reescaladas para o alvo da refeição. Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 343,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING025"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING025",
              "raw_state": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
              "yield_factor": 0.44,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Strogonoff bovino leve",
            "source_method_ids": [
              "PM-SRC-8AB2C3072E"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar cebola e alho; dourar cogumelos separadamente para perderem água."
              },
              {
                "order": 2,
                "instruction": "Secar/temperar a carne e selar rapidamente em frigideira quente sem lotar."
              },
              {
                "order": 3,
                "instruction": "Reunir os componentes e reduzir o molho curto com mostarda/caldo/tomate apenas quando previstos."
              },
              {
                "order": 4,
                "instruction": "Retirar do calor forte e incorporar o iogurte zero lactose da adaptação para manter cremosidade sem talhar."
              }
            ],
            "source_time_reference": [
              "fonte: cebola ~15 min; alho 2–3 min; cogumelos ~5 min; carne 3–4 min; molho ~5 min"
            ],
            "source_temperature_reference": [
              "frigideira quente para selar; calor médio/baixo no molho"
            ],
            "texture_or_doneness_endpoint": [
              "carne dourada; cogumelos sem excesso de líquido; molho cremoso e curto"
            ],
            "adaptation_guardrails": [
              "A fonte usa farinha/crème fraîche; omitir farinha e trocar o lácteo conforme a adaptação.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porções reescaladas para o alvo da refeição.",
          "Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "carne selada; molho curto; iogurte entra fora do fogo",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-8AB2C3072E"
          ]
        }
      }
    },
    "NEW-MAIN-M02": {
      "id": "NEW-MAIN-M02",
      "name": "Bife com chimichurri",
      "category": "main",
      "origin": "generated_v3",
      "method_overview": "bife selado em frigideira/grelha; fatiado contra a fibra",
      "seasoning_text": "chimichurri",
      "seasoning_refs": [
        "T032"
      ],
      "source_ids": [
        "SRC-AEF5B9DDD4"
      ],
      "adaptation_notes": "Porções reescaladas para o alvo da refeição. Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.6,
        "best_rating_count": 27,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.65,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Bife com chimichurri",
            "source_method_ids": [
              "PM-SRC-AEF5B9DDD4"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador ou faca",
              "tigela",
              "chapa ou frigideira",
              "pinça"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Picar/processar ervas, alho e aromáticos autorizados do chimichurri e combinar com o ácido e a gordura contabilizada até virar molho rústico."
              },
              {
                "order": 2,
                "instruction": "Secar/temperar o bife e esfregar somente a gordura autorizada na superfície."
              },
              {
                "order": 3,
                "instruction": "Selar em chapa/frigideira quente; a fonte usa 2–3 min por lado para bifes de 125 g, mas o tempo deve seguir espessura e ponto."
              },
              {
                "order": 4,
                "instruction": "Descansar alguns minutos antes de fatiar e só então aplicar o chimichurri."
              }
            ],
            "source_time_reference": [
              "fonte: 2–3 min por lado; descanso de alguns minutos"
            ],
            "source_temperature_reference": [
              "chapa/frigideira quente"
            ],
            "texture_or_doneness_endpoint": [
              "crosta externa, ponto interno desejado e sucos redistribuídos após descanso"
            ],
            "adaptation_guardrails": [
              "Batata/fritas e salada da fonte não são parte automática da adaptação.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porções reescaladas para o alvo da refeição.",
          "Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bife selado em frigideira/grelha; fatiado contra a fibra",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AEF5B9DDD4"
          ]
        }
      }
    },
    "NEW-MAIN-M03": {
      "id": "NEW-MAIN-M03",
      "name": "Bife ao miso",
      "category": "main",
      "origin": "generated_v3",
      "method_overview": "marinado rapidamente e selado em fogo alto",
      "seasoning_text": "miso, gengibre e cebolinha em traço",
      "seasoning_refs": [
        "T012"
      ],
      "source_ids": [
        "SRC-58CC1ECA0E"
      ],
      "adaptation_notes": "Porções reescaladas para o alvo da refeição. Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 30,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.65,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Bife ao miso",
            "source_method_ids": [
              "PM-SRC-58CC1ECA0E"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "saco ou recipiente para marinar",
              "frigideira pesada, chapa ou churrasqueira",
              "pinça"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar o miso e aromáticos autorizados e cobrir uniformemente o bife."
              },
              {
                "order": 2,
                "instruction": "Marinar refrigerado; a fonte usa no mínimo 1 h e permite até 2 dias."
              },
              {
                "order": 3,
                "instruction": "Antes de selar, retirar o excesso de marinada superficial para reduzir queima."
              },
              {
                "order": 4,
                "instruction": "Aquecer muito bem a chapa/frigideira/churrasqueira e selar dos dois lados. A fonte usa cerca de 3 min por lado para malpassado ao ponto em bife semelhante."
              },
              {
                "order": 5,
                "instruction": "Descansar antes de fatiar contra a fibra."
              }
            ],
            "source_time_reference": [
              "fonte: marinada ≥1 h (até 2 dias); ~3 min por lado para medium-rare; descanso ~1 min"
            ],
            "source_temperature_reference": [
              "superfície muito quente"
            ],
            "texture_or_doneness_endpoint": [
              "crosta bem selada e ponto interno desejado"
            ],
            "adaptation_guardrails": [
              "Não usar açúcar, saquê/xerez ou acompanhamentos da fonte se não estiverem autorizados. Tempo de chapa depende da espessura e do corte real.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porções reescaladas para o alvo da refeição.",
          "Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "marinado rapidamente e selado em fogo alto",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-58CC1ECA0E"
          ]
        }
      }
    },
    "NEW-MAIN-M04": {
      "id": "NEW-MAIN-M04",
      "name": "Bife simples na chapa",
      "category": "main",
      "origin": "generated_v3",
      "method_overview": "chapa muito quente; descanso antes de fatiar",
      "seasoning_text": "sal, pimenta e alho",
      "seasoning_refs": [
        "T098"
      ],
      "source_ids": [
        "SRC-28230B968D"
      ],
      "adaptation_notes": "Porções reescaladas para o alvo da refeição. Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.4,
        "best_rating_count": 36,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.65,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Bife simples na chapa",
            "source_method_ids": [
              "PM-SRC-28230B968D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira pesada",
              "pinça"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Retirar o bife da geladeira com antecedência curta, secar a superfície e temperar."
              },
              {
                "order": 2,
                "instruction": "Aquecer a frigideira em fogo alto com a gordura prevista; reduzir levemente quando a gordura estiver quente."
              },
              {
                "order": 3,
                "instruction": "Selar virando a cada 30–60 s para desenvolver crosta uniforme."
              },
              {
                "order": 4,
                "instruction": "Retirar no ponto desejado, repousar e fatiar contra a fibra quando aplicável."
              }
            ],
            "source_time_reference": [
              "fonte para steak ~2 cm: ~3 min rare; 4–5 min medium; 7–8 min well done"
            ],
            "source_temperature_reference": [
              "fogo alto → médio-alto; fonte cita 50°C rare, 60°C medium, 70°C well done"
            ],
            "texture_or_doneness_endpoint": [
              "crosta marrom; ponto interno escolhido"
            ],
            "adaptation_guardrails": [
              "Usar somente a gordura prevista; manteiga/alho/ervas da fonte só entram se autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porções reescaladas para o alvo da refeição.",
          "Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "chapa muito quente; descanso antes de fatiar",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-28230B968D"
          ]
        }
      }
    },
    "NEW-MAIN-M05": {
      "id": "NEW-MAIN-M05",
      "name": "Bife apimentado",
      "category": "main",
      "origin": "generated_v3",
      "method_overview": "selado; crosta de pimenta moída grosseiramente",
      "seasoning_text": "pimenta-do-reino e ervas",
      "seasoning_refs": [
        "T088"
      ],
      "source_ids": [
        "SRC-FF4DBC0D5A"
      ],
      "adaptation_notes": "Porções reescaladas para o alvo da refeição. Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 17,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.65,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Bife apimentado",
            "source_method_ids": [
              "PM-SRC-FF4DBC0D5A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "chapa/griddle",
              "pinça"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar a carne, usar somente a gordura contabilizada e pressionar pimenta moída grosseiramente na superfície."
              },
              {
                "order": 2,
                "instruction": "Aquecer bem a chapa e selar os bifes sem movimentar excessivamente."
              },
              {
                "order": 3,
                "instruction": "Como referência da fonte para filés de ~140 g: 2,5 min por lado malpassado ao ponto, 3,5 min por lado ao ponto e 4,5 min por lado bem-passado. Ajustar à espessura real."
              },
              {
                "order": 4,
                "instruction": "Descansar cerca de 5 min antes de servir/fatiar."
              }
            ],
            "source_time_reference": [
              "fonte: 2,5–4,5 min por lado conforme ponto; descanso 5 min"
            ],
            "source_temperature_reference": [
              "chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "crosta apimentada e ponto interno desejado"
            ],
            "adaptation_guardrails": [
              "Manteiga e batatas da fonte só entram se estiverem autorizadas.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porções reescaladas para o alvo da refeição.",
          "Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "selado; crosta de pimenta moída grosseiramente",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-FF4DBC0D5A"
          ]
        }
      }
    },
    "NEW-MAIN-M06": {
      "id": "NEW-MAIN-M06",
      "name": "Hambúrguer bovino caseiro sem pão",
      "category": "main",
      "origin": "generated_v3",
      "method_overview": "moldado em disco e grelhado/chapado",
      "seasoning_text": "sal, pimenta, cebola em pequena quantidade",
      "seasoning_refs": [
        "T098"
      ],
      "source_ids": [
        "SRC-2D6228D97C"
      ],
      "adaptation_notes": "Porções reescaladas para o alvo da refeição. Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 108,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING024"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Hambúrguer bovino caseiro sem pão",
            "source_method_ids": [
              "PM-SRC-2D6228D97C"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "chapa/grelha",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Moldar discos uniformes com a carne e temperos autorizados, manipulando o mínimo necessário."
              },
              {
                "order": 2,
                "instruction": "Resfriar os discos por cerca de 30 min se houver tempo para firmar."
              },
              {
                "order": 3,
                "instruction": "Grelhar/chapear em calor médio-alto sem pressionar o hambúrguer."
              },
              {
                "order": 4,
                "instruction": "Virar uma vez ou conforme necessário; retirar no ponto definido para a carne moída e deixar repousar brevemente."
              }
            ],
            "source_time_reference": [
              "fonte: ~5 min por lado para hambúrguer de ~3 cm"
            ],
            "source_temperature_reference": [
              "grelha/chapa média-quente"
            ],
            "texture_or_doneness_endpoint": [
              "crosta dourada e interior cozido"
            ],
            "adaptation_guardrails": [
              "A fonte usa cebola/ovo; omitir se não estiverem na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porções reescaladas para o alvo da refeição.",
          "Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "moldado em disco e grelhado/chapado",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-2D6228D97C"
          ]
        }
      }
    },
    "NEW-MAIN-M07": {
      "id": "NEW-MAIN-M07",
      "name": "Kofta bovina grelhada",
      "category": "main",
      "origin": "generated_v3",
      "method_overview": "moldada em cilindros/espetos e grelhada",
      "seasoning_text": "cominho, coentro, alho e ervas",
      "seasoning_refs": [
        "T103"
      ],
      "source_ids": [
        "SRC-2F77203D66"
      ],
      "adaptation_notes": "Porções reescaladas para o alvo da refeição. Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 148,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Kofta bovina grelhada",
            "source_method_ids": [
              "PM-SRC-2F77203D66"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "espetos metálicos",
              "chapa/griddle ou churrasqueira",
              "pinça"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne crua moída com cominho, coentro, alho, hortelã e demais temperos autorizados até distribuir; evitar compactar excessivamente."
              },
              {
                "order": 2,
                "instruction": "Dividir e moldar em ovais/cilindros, espetar e pincelar somente a gordura autorizada."
              },
              {
                "order": 3,
                "instruction": "Aquecer bem a chapa e cozinhar sem tentar virar antes de a superfície selar."
              },
              {
                "order": 4,
                "instruction": "A fonte usa cerca de 3–4 min por lado; ajustar à espessura da adaptação. A gramagem desta página já deve ser pesada antes da cocção; não é necessário repesar para porcionar."
              }
            ],
            "source_time_reference": [
              "fonte: ~3–4 min por lado"
            ],
            "source_temperature_reference": [
              "chapa/churrasqueira bem quente"
            ],
            "texture_or_doneness_endpoint": [
              "superfície selada/dourada e centro cozido"
            ],
            "adaptation_guardrails": [
              "A fonte usa cordeiro; nas versões bovinas, preservar técnica/formato, mas usar apenas a carne prevista na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porções reescaladas para o alvo da refeição.",
          "Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "moldada em cilindros/espetos e grelhada",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-2F77203D66"
          ]
        }
      }
    },
    "NEW-MAIN-M08": {
      "id": "NEW-MAIN-M08",
      "name": "Kofte marroquino ao tomate",
      "category": "main",
      "origin": "generated_v3",
      "method_overview": "almôndegas/koftas douradas com molho de tomate reduzido",
      "seasoning_text": "harissa, cominho e tomate",
      "seasoning_refs": [
        "T103"
      ],
      "source_ids": [
        "SRC-2F1142BB4F"
      ],
      "adaptation_notes": "Porções reescaladas para o alvo da refeição. Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 42,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007",
            "ING023"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Kofte marroquino ao tomate",
            "source_method_ids": [
              "PM-SRC-2F1142BB4F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "espetos",
              "grill/churrasqueira",
              "panela para molho"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne crua moída com cebola/ervas/especiarias autorizadas e moldar cilindros uniformes em espetos."
              },
              {
                "order": 2,
                "instruction": "Para o molho, perfumar o alho e reduzir tomate/harissa autorizados até espessar; a fonte reduz por 15–20 min."
              },
              {
                "order": 3,
                "instruction": "Grelhar as koftas, virando para dourar por igual; a fonte usa 6–8 min no total."
              },
              {
                "order": 4,
                "instruction": "Montar com o molho autorizado e, quando previsto, iogurte zero lactose. A carne deve ser pesada crua na gramagem desta página antes da cocção; não é necessário repesar para porcionar."
              }
            ],
            "source_time_reference": [
              "fonte: molho 15–20 min; koftas 6–8 min no grill"
            ],
            "source_temperature_reference": [
              "grill quente; molho em fervura suave"
            ],
            "texture_or_doneness_endpoint": [
              "koftas bem douradas e cozidas no centro; molho espesso"
            ],
            "adaptation_guardrails": [
              "Iogurte, pinoli, açúcar e acompanhamentos só entram se autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porções reescaladas para o alvo da refeição.",
          "Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "almôndegas/koftas douradas com molho de tomate reduzido",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-2F1142BB4F"
          ]
        }
      }
    },
    "NEW-MAIN-M09": {
      "id": "NEW-MAIN-M09",
      "name": "Frango grelhado com limão e alho",
      "category": "main",
      "origin": "generated_v3",
      "method_overview": "grelhado/chapado em tiras ou filés finos",
      "seasoning_text": "limão, alho, páprica e pimenta",
      "seasoning_refs": [
        "T021"
      ],
      "source_ids": [
        "SRC-08D66807B8"
      ],
      "adaptation_notes": "Porções reescaladas para o alvo da refeição. Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango grelhado com limão e alho",
            "source_method_ids": [
              "PM-SRC-08D66807B8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela não metálica",
              "grelha/chapa ou grill",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro."
              },
              {
                "order": 3,
                "instruction": "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada."
              },
              {
                "order": 4,
                "instruction": "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h"
            ],
            "source_temperature_reference": [
              "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido"
            ],
            "texture_or_doneness_endpoint": [
              "bem dourado por fora e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
              "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porções reescaladas para o alvo da refeição.",
          "Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "grelhado/chapado em tiras ou filés finos",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-08D66807B8"
          ]
        }
      }
    },
    "NEW-MAIN-M10": {
      "id": "NEW-MAIN-M10",
      "name": "Frango jerk",
      "category": "main",
      "origin": "generated_v3",
      "method_overview": "marinado e grelhado/assado",
      "seasoning_text": "jerk: tomilho, pimenta-da-jamaica, alho e gengibre",
      "seasoning_refs": [
        "T101"
      ],
      "source_ids": [
        "SRC-A9091F6283"
      ],
      "adaptation_notes": "Porções reescaladas para o alvo da refeição. Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.3,
        "best_rating_count": 36,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango jerk",
            "source_method_ids": [
              "PM-SRC-A9091F6283"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador ou pilão",
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Processar/misturar os temperos jerk, alho, gengibre, tomilho, pimenta e limão/lima autorizados até formar pasta."
              },
              {
                "order": 2,
                "instruction": "Cobrir o frango uniformemente com a pasta."
              },
              {
                "order": 3,
                "instruction": "Assar ou grelhar até dourar e cozinhar por completo."
              }
            ],
            "source_time_reference": [
              "fonte para coxas com osso: 45–50 min"
            ],
            "source_temperature_reference": [
              "200°C / 180°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado, aromático e cozido"
            ],
            "adaptation_guardrails": [
              "Coconut cream e demais ingredientes da fonte só entram se constarem na adaptação; tempo da coxa não deve ser aplicado ao peito.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porções reescaladas para o alvo da refeição.",
          "Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "marinado e grelhado/assado",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A9091F6283"
          ]
        }
      }
    },
    "NEW-MAIN-M11": {
      "id": "NEW-MAIN-M11",
      "name": "Frango tikka",
      "category": "main",
      "origin": "generated_v3",
      "method_overview": "cubos/espetos marinados e assados/grelhados",
      "seasoning_text": "garam masala, iogurte, alho e gengibre",
      "seasoning_refs": [
        "T099"
      ],
      "source_ids": [
        "SRC-C52DCF7F9D"
      ],
      "adaptation_notes": "Porções reescaladas para o alvo da refeição. Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 84,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango tikka",
            "source_method_ids": [
              "PM-SRC-C52DCF7F9D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "espetos",
              "grill/forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte e pasta/especiarias tikka autorizadas; envolver os cubos de frango."
              },
              {
                "order": 2,
                "instruction": "Marinar por cerca de 1 h quando possível."
              },
              {
                "order": 3,
                "instruction": "Retirar excesso de marinada, colocar nos espetos e grelhar, virando periodicamente."
              },
              {
                "order": 4,
                "instruction": "Retirar quando bem dourado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte: 15–20 min sob grill médio; marinada opcional ~1 h"
            ],
            "source_temperature_reference": [
              "grill médio"
            ],
            "texture_or_doneness_endpoint": [
              "bordas douradas e centro cozido"
            ],
            "adaptation_guardrails": [
              "Usar iogurte zero lactose; tomate/chapati/salada da fonte não entram salvo se listados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porções reescaladas para o alvo da refeição.",
          "Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "cubos/espetos marinados e assados/grelhados",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-C52DCF7F9D"
          ]
        }
      }
    },
    "NEW-MAIN-M12": {
      "id": "NEW-MAIN-M12",
      "name": "Frango ao curry seco",
      "category": "main",
      "origin": "generated_v3",
      "method_overview": "cubos salteados até molho aderente",
      "seasoning_text": "curry/garam masala, cominho, coentro",
      "seasoning_refs": [
        "T099"
      ],
      "source_ids": [
        "SRC-A400F927EE"
      ],
      "adaptation_notes": "Porções reescaladas para o alvo da refeição. Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 360,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango ao curry seco",
            "source_method_ids": [
              "PM-SRC-A400F927EE"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira/panela larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar cebola e aromáticos; adicionar alho/gengibre e cozinhar brevemente."
              },
              {
                "order": 2,
                "instruction": "Adicionar o frango e dourar os cubos."
              },
              {
                "order": 3,
                "instruction": "Adicionar especiarias/pasta e os componentes de molho autorizados; cozinhar em fervura suave até o molho reduzir e aderir."
              },
              {
                "order": 4,
                "instruction": "Quando houver iogurte na adaptação, incorporar no final e evitar fervura forte."
              }
            ],
            "source_time_reference": [
              "fonte: cebola 8–10 min; aromáticos ~1 min; frango ~5 min antes do molho; molho 25–30 min"
            ],
            "source_temperature_reference": [
              "médio → fervura suave"
            ],
            "texture_or_doneness_endpoint": [
              "frango cozido e molho concentrado"
            ],
            "adaptation_guardrails": [
              "A versão “curry seco” pode omitir tomate/água/iogurte; nesse caso parar quando especiarias estiverem aderidas ao frango.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porções reescaladas para o alvo da refeição.",
          "Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "cubos salteados até molho aderente",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A400F927EE"
          ]
        }
      }
    },
    "NEW-MAIN-M13": {
      "id": "NEW-MAIN-M13",
      "name": "Almôndegas de frango com limão e manjericão",
      "category": "main",
      "origin": "generated_v3",
      "method_overview": "assadas ou douradas em frigideira antiaderente",
      "seasoning_text": "limão, manjericão, alho e pimenta",
      "seasoning_refs": [
        "T021"
      ],
      "source_ids": [
        "SRC-BAAEF5D467"
      ],
      "adaptation_notes": "Porções reescaladas para o alvo da refeição. Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 4,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Almôndegas de frango com limão e manjericão",
            "source_method_ids": [
              "PM-SRC-BAAEF5D467"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "frigideira larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a proteína crua moída com limão, manjericão, alho e somente os ligantes/queijo que estejam autorizados."
              },
              {
                "order": 2,
                "instruction": "Moldar almôndegas uniformes; a fonte usa unidades de cerca de 35 g cruas."
              },
              {
                "order": 3,
                "instruction": "Dourar as almôndegas em fogo médio-alto, movimentando para colorir todos os lados."
              },
              {
                "order": 4,
                "instruction": "Quando houver molho de tomate autorizado, terminar o cozimento em fervura suave até o centro estar cozido; sem molho, concluir na frigideira/forno conforme a ficha."
              }
            ],
            "source_time_reference": [
              "fonte: dourar 6–8 min; depois 15 min no molho"
            ],
            "source_temperature_reference": [
              "médio-alto para dourar; fervura suave no molho"
            ],
            "texture_or_doneness_endpoint": [
              "douradas por fora e cozidas no centro"
            ],
            "adaptation_guardrails": [
              "Breadcrumbs, leite, pesto, tomate e açúcar só entram se estiverem autorizados; para nossa versão simples, preservar principalmente limão/manjericão/alho e a técnica de moldar+dourar.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porções reescaladas para o alvo da refeição.",
          "Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "assadas ou douradas em frigideira antiaderente",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-BAAEF5D467"
          ]
        }
      }
    },
    "NEW-MAIN-M14": {
      "id": "NEW-MAIN-M14",
      "name": "Tilápia com alho e páprica",
      "category": "main",
      "origin": "generated_v3",
      "method_overview": "filé grelhado ou assado até lascar",
      "seasoning_text": "alho, páprica e limão",
      "seasoning_refs": [
        "T021"
      ],
      "source_ids": [
        "SRC-86C8B417AE"
      ],
      "adaptation_notes": "Porções reescaladas para o alvo da refeição. Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 860,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING010"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING010",
              "raw_state": "Filé de tilápia cru, sem pele, pronto para cozinhar",
              "yield_factor": 0.7,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Tilápia com alho e páprica",
            "source_method_ids": [
              "PM-SRC-86C8B417AE"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente ou pesada",
              "espátula de peixe",
              "papel-toalha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar muito bem os filés e temperar os dois lados."
              },
              {
                "order": 2,
                "instruction": "Aquecer o azeite previsto em fogo médio-alto."
              },
              {
                "order": 3,
                "instruction": "Colocar os filés sem sobrepor e selar até dourar; virar com cuidado e terminar o segundo lado."
              },
              {
                "order": 4,
                "instruction": "Finalizar com limão/ervas autorizados e retirar assim que o peixe lascar facilmente."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 4 min por lado"
            ],
            "source_temperature_reference": [
              "médio-alto"
            ],
            "texture_or_doneness_endpoint": [
              "opaco, úmido e lascando facilmente"
            ],
            "adaptation_guardrails": [
              "A fonte usa farinha e manteiga; omitir quando não constarem. Não é necessário lavar o peixe; apenas secar a superfície.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porções reescaladas para o alvo da refeição.",
          "Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "filé grelhado ou assado até lascar",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-86C8B417AE"
          ]
        }
      }
    },
    "NEW-MAIN-M15": {
      "id": "NEW-MAIN-M15",
      "name": "Tilápia ao parmesão na air fryer/forno",
      "category": "main",
      "origin": "generated_v3",
      "method_overview": "camada fina de parmesão; forno/air fryer até dourar",
      "seasoning_text": "parmesão, alho e pimenta",
      "seasoning_refs": [
        "T017"
      ],
      "source_ids": [
        "SRC-62670668F4"
      ],
      "adaptation_notes": "Porções reescaladas para o alvo da refeição. Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 10279,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING010"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING005",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING010",
              "raw_state": "Filé de tilápia cru, sem pele, pronto para cozinhar",
              "yield_factor": 0.7,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Tilápia ao parmesão na air fryer/forno",
            "source_method_ids": [
              "PM-SRC-62670668F4"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira rasa",
              "grill/broiler ou air fryer",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar/temperar os filés e dispor em camada única."
              },
              {
                "order": 2,
                "instruction": "Pré-cozinhar sob grill forte, virando na metade quando a espessura permitir."
              },
              {
                "order": 3,
                "instruction": "Aplicar uma camada fina da cobertura de parmesão adaptada."
              },
              {
                "order": 4,
                "instruction": "Voltar ao grill/air fryer apenas até dourar a cobertura e o peixe lascar."
              }
            ],
            "source_time_reference": [
              "fonte: ~4 min de grill inicial (virando na metade) + ~2 min após a cobertura"
            ],
            "source_temperature_reference": [
              "broiler/grill alto, filé próximo da fonte de calor"
            ],
            "texture_or_doneness_endpoint": [
              "parmesão dourado; peixe lascando"
            ],
            "adaptation_guardrails": [
              "A fonte usa maionese e manteiga; nossa adaptação não deve adicioná-las salvo se explicitamente contabilizadas.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porções reescaladas para o alvo da refeição.",
          "Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "camada fina de parmesão; forno/air fryer até dourar",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-62670668F4"
          ]
        }
      }
    },
    "NEW-MAIN-M16": {
      "id": "NEW-MAIN-M16",
      "name": "Lombo suíno com limão, alho e alecrim",
      "category": "main",
      "origin": "generated_v3",
      "method_overview": "fatias/medalhões grelhados ou assados",
      "seasoning_text": "limão, alho, alecrim e pimenta",
      "seasoning_refs": [
        "T021"
      ],
      "source_ids": [
        "SRC-14024CE8FA"
      ],
      "adaptation_notes": "Porções reescaladas para o alvo da refeição. Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.3,
        "best_rating_count": 26,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING009"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING009",
              "raw_state": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
              "yield_factor": 0.64,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Lombo suíno com limão, alho e alecrim",
            "source_method_ids": [
              "PM-SRC-14024CE8FA"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "frigideira antiaderente",
              "pegador"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar azeite contabilizado, alecrim, alho, suco/raspas de limão e temperos; envolver os medalhões/fatias de porco."
              },
              {
                "order": 2,
                "instruction": "Marinar sob refrigeração por cerca de 30 min quando houver tempo."
              },
              {
                "order": 3,
                "instruction": "Aquecer bem a frigideira antiaderente, retirar excesso superficial de marinada e cozinhar a carne dos dois lados."
              },
              {
                "order": 4,
                "instruction": "Retirar ao atingir o ponto de cocção e deixar repousar antes de porcionar pelo peso cru indicado antes da cocção."
              }
            ],
            "source_time_reference": [
              "fonte: 3–4 min de cada lado para pork steaks; marinada opcional ~30 min"
            ],
            "source_temperature_reference": [
              "frigideira bem quente"
            ],
            "texture_or_doneness_endpoint": [
              "dourado por fora e cozido; repousado antes de pesar/porcionar"
            ],
            "adaptation_guardrails": [
              "Grão-de-bico, cebola e salada da fonte não entram na receita de lombo; o tempo depende da espessura do corte.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porções reescaladas para o alvo da refeição.",
          "Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "fatias/medalhões grelhados ou assados",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-14024CE8FA"
          ]
        }
      }
    },
    "NEW-MAIN-M17": {
      "id": "NEW-MAIN-M17",
      "name": "Lombo suíno estilo stroganoff leve",
      "category": "main",
      "origin": "generated_v3",
      "method_overview": "tiras seladas; molho curto com cogumelo e iogurte",
      "seasoning_text": "páprica, mostarda, cogumelo e iogurte",
      "seasoning_refs": [
        "T094"
      ],
      "source_ids": [
        "SRC-2227CA24C9"
      ],
      "adaptation_notes": "Porções reescaladas para o alvo da refeição. Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 47,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING009",
            "ING025"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING009",
              "raw_state": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
              "yield_factor": 0.64,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING025",
              "raw_state": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
              "yield_factor": 0.44,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Lombo suíno estilo stroganoff leve",
            "source_method_ids": [
              "PM-SRC-2227CA24C9"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira larga",
              "espátula ou pinça"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar os cogumelos em lotes até a água liberada evaporar e reservar."
              },
              {
                "order": 2,
                "instruction": "Selar o lombo em pedaços/tiras na gordura contabilizada; a fonte usa 5–8 min para cubos de 1 cm, mas a adaptação deve seguir o tamanho real do corte."
              },
              {
                "order": 3,
                "instruction": "Cozinhar a cebola/aromáticos autorizados em fogo baixo-médio até amaciar e começar a caramelizar; na fonte, cerca de 10–12 min."
              },
              {
                "order": 4,
                "instruction": "Reunir carne e cogumelos, adicionar páprica, mostarda e somente o líquido autorizado, raspando o fundo da panela."
              },
              {
                "order": 5,
                "instruction": "Incorporar o iogurte/lácteo zero lactose previsto no final, em calor suave, apenas até aquecer e homogeneizar."
              }
            ],
            "source_time_reference": [
              "fonte: porco 5–8 min; cebola 10–12 min; lácteo final ~2 min"
            ],
            "source_temperature_reference": [
              "médio para cogumelos/carne; baixo-médio para cebola; suave após o lácteo"
            ],
            "texture_or_doneness_endpoint": [
              "carne cozida sem ressecar, cogumelos dourados e molho cremoso sem separar"
            ],
            "adaptation_guardrails": [
              "Usar iogurte/lácteo zero lactose apenas se estiver na porção. Não ferver vigorosamente após incorporá-lo.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porções reescaladas para o alvo da refeição.",
          "Acompanhamentos ricos em amido das receitas-fonte foram omitidos; técnica e perfil de sabor foram preservados.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "tiras seladas; molho curto com cogumelo e iogurte",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-2227CA24C9"
          ]
        }
      }
    },
    "NEW-SIDE-S01": {
      "id": "NEW-SIDE-S01",
      "name": "Brócolis assado com alho e limão",
      "category": "side",
      "origin": "generated_v3",
      "method_overview": "forno/air fryer em camada única até bordas tostadas",
      "seasoning_text": "alho, limão e pimenta",
      "seasoning_refs": [
        "T021"
      ],
      "source_ids": [
        "SRC-BA4DE63859"
      ],
      "adaptation_notes": "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 9,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING018"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING018",
              "raw_state": "Brócolis cru, aparado e pronto para cozinhar",
              "yield_factor": 1.0,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Brócolis assado com alho e limão",
            "source_method_ids": [
              "PM-SRC-BA4DE63859"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar bem o brócolis, misturar com a quantidade de azeite prevista e temperos."
              },
              {
                "order": 2,
                "instruction": "Espalhar em camada única sem amontoar."
              },
              {
                "order": 3,
                "instruction": "Assar até macio no interior e com pontas/bordas tostadas, movimentando a assadeira aproximadamente na metade."
              }
            ],
            "source_time_reference": [
              "25–30 min"
            ],
            "source_temperature_reference": [
              "180°C / 160°C ventilado na fonte"
            ],
            "texture_or_doneness_endpoint": [
              "macio com bordas crocantes/tostadas"
            ],
            "adaptation_guardrails": [
              "Limão/alho entram apenas conforme tempero autorizado.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "forno/air fryer em camada única até bordas tostadas",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-BA4DE63859"
          ]
        }
      }
    },
    "NEW-SIDE-S02": {
      "id": "NEW-SIDE-S02",
      "name": "Brócolis com ervas",
      "category": "side",
      "origin": "generated_v3",
      "method_overview": "cozido al dente e finalizado rapidamente na frigideira",
      "seasoning_text": "ervas frescas, limão e pimenta",
      "seasoning_refs": [
        "T052"
      ],
      "source_ids": [
        "SRC-E83E0CA483"
      ],
      "adaptation_notes": "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 5,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING018"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING018",
              "raw_state": "Brócolis cru, aparado e pronto para cozinhar",
              "yield_factor": 1.0,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Brócolis com ervas",
            "source_method_ids": [
              "PM-SRC-E83E0CA483"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela de vapor ou panela com cesta",
              "tigela pequena"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar o brócolis no vapor até macio porém estruturado; a fonte usa 5–8 min."
              },
              {
                "order": 2,
                "instruction": "Enquanto isso, preparar o tempero/herb mix autorizado."
              },
              {
                "order": 3,
                "instruction": "Escorrer/retirar o brócolis e aplicar o tempero apenas no final, preservando cor e textura."
              }
            ],
            "source_time_reference": [
              "fonte: vapor 5–8 min"
            ],
            "source_temperature_reference": [
              "vapor"
            ],
            "texture_or_doneness_endpoint": [
              "brócolis macio/al dente, verde e sem desmanchar"
            ],
            "adaptation_guardrails": [
              "Pesto e pinoli da fonte não entram se não estiverem na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "cozido al dente e finalizado rapidamente na frigideira",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E83E0CA483"
          ]
        }
      }
    },
    "NEW-SIDE-S03": {
      "id": "NEW-SIDE-S03",
      "name": "Purê de couve-flor",
      "category": "side",
      "origin": "generated_v3",
      "method_overview": "cozida e processada até purê; sem farinha",
      "seasoning_text": "sal, pimenta, noz-moscada em traço",
      "seasoning_refs": [
        "T028"
      ],
      "source_ids": [
        "SRC-76B58D0101"
      ],
      "adaptation_notes": "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 5.0,
        "best_rating_count": 2,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING019"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING019",
              "raw_state": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
              "yield_factor": 0.98,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Purê de couve-flor",
            "source_method_ids": [
              "PM-SRC-76B58D0101"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "panela ou vaporizador",
              "processador/liquidificador"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a couve-flor até ficar completamente macia."
              },
              {
                "order": 2,
                "instruction": "Escorrer e deixar o vapor sair para evitar purê aguado."
              },
              {
                "order": 3,
                "instruction": "Processar até liso com somente os componentes cremosos/gordura autorizados."
              },
              {
                "order": 4,
                "instruction": "Ajustar temperos e manter aquecido sem ferver vigorosamente."
              }
            ],
            "source_time_reference": [
              "fonte de purê; tempo depende do tamanho dos floretes"
            ],
            "source_temperature_reference": [
              "cozimento até maciez; processar quente"
            ],
            "texture_or_doneness_endpoint": [
              "purê liso, espesso e sem água livre"
            ],
            "adaptation_guardrails": [
              "Usar iogurte zero lactose apenas quando constar; sem farinha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "cozida e processada até purê; sem farinha",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-76B58D0101"
          ]
        }
      }
    },
    "NEW-SIDE-S04": {
      "id": "NEW-SIDE-S04",
      "name": "Couve-flor assada com especiarias",
      "category": "side",
      "origin": "generated_v3",
      "method_overview": "assada em floretes até caramelizar",
      "seasoning_text": "cominho, páprica e limão",
      "seasoning_refs": [
        "T098"
      ],
      "source_ids": [
        "SRC-67BF43F16C"
      ],
      "adaptation_notes": "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.6,
        "best_rating_count": 44,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING019"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING019",
              "raw_state": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
              "yield_factor": 0.98,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Couve-flor assada com especiarias",
            "source_method_ids": [
              "PM-SRC-67BF43F16C"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira/wok com tampa",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer a gordura e perfumar gengibre/especiarias por poucos segundos."
              },
              {
                "order": 2,
                "instruction": "Adicionar a couve-flor, reduzir o calor e tampar."
              },
              {
                "order": 3,
                "instruction": "Cozinhar mexendo ocasionalmente até amaciar e as especiarias aderirem."
              },
              {
                "order": 4,
                "instruction": "Finalizar com ervas autorizadas."
              }
            ],
            "source_time_reference": [
              "fonte: ~10 min tampada após as especiarias"
            ],
            "source_temperature_reference": [
              "início quente; depois calor reduzido"
            ],
            "texture_or_doneness_endpoint": [
              "floretes macios, ainda estruturados, cobertos de especiarias"
            ],
            "adaptation_guardrails": [
              "Usar apenas especiarias autorizadas.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "assada em floretes até caramelizar",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-67BF43F16C"
          ]
        }
      }
    },
    "NEW-SIDE-S05": {
      "id": "NEW-SIDE-S05",
      "name": "Vagem com alho e amêndoas tostadas",
      "category": "side",
      "origin": "generated_v3",
      "method_overview": "vagem al dente; amêndoas adicionadas no final",
      "seasoning_text": "alho, limão e amêndoas",
      "seasoning_refs": [
        "T021"
      ],
      "source_ids": [
        "SRC-94F9CB1526"
      ],
      "adaptation_notes": "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 13,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING022",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            },
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Vagem com alho e amêndoas tostadas",
            "source_method_ids": [
              "PM-SRC-94F9CB1526"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela",
              "frigideira"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem até al dente, escorrer e secar."
              },
              {
                "order": 2,
                "instruction": "Amaciar cebola/shallot e alho lentamente na gordura prevista sem deixar queimar."
              },
              {
                "order": 3,
                "instruction": "Adicionar a vagem apenas para aquecer e envolver."
              },
              {
                "order": 4,
                "instruction": "Finalizar com limão e amêndoas tostadas; para marmita, manter as amêndoas separadas até servir."
              }
            ],
            "source_time_reference": [
              "fonte: aromáticos ~8 min; vagem cozida previamente"
            ],
            "source_temperature_reference": [
              "calor suave para aromáticos"
            ],
            "texture_or_doneness_endpoint": [
              "vagem firme; amêndoas crocantes"
            ],
            "adaptation_guardrails": [
              "Quantidade de amêndoa e azeite deve seguir a porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "vagem al dente; amêndoas adicionadas no final",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-94F9CB1526"
          ]
        }
      }
    },
    "NEW-SIDE-S06": {
      "id": "NEW-SIDE-S06",
      "name": "Vagem com gergelim e gengibre",
      "category": "side",
      "origin": "generated_v3",
      "method_overview": "salteada rapidamente mantendo crocância",
      "seasoning_text": "gergelim/gengibre; molho de soja em traço",
      "seasoning_refs": [
        "T029"
      ],
      "source_ids": [
        "SRC-430616225D"
      ],
      "adaptation_notes": "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 9,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING022"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Vagem com gergelim e gengibre",
            "source_method_ids": [
              "PM-SRC-430616225D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela",
              "wok/frigideira"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Ferver a vagem brevemente e escorrer muito bem."
              },
              {
                "order": 2,
                "instruction": "Aquecer a gordura, perfumar gengibre/alho por cerca de 1 min."
              },
              {
                "order": 3,
                "instruction": "Adicionar a vagem e saltear; finalizar com gergelim/temperos autorizados por poucos segundos."
              }
            ],
            "source_time_reference": [
              "fonte: vagem ~3 min; aromáticos ~1 min; finalização ~30 s"
            ],
            "source_temperature_reference": [
              "frigideira quente"
            ],
            "texture_or_doneness_endpoint": [
              "vagem firme e aromática"
            ],
            "adaptation_guardrails": [
              "Se óleo de gergelim não estiver contabilizado, usar o azeite previsto e gergelim/condimentos apenas conforme ficha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "salteada rapidamente mantendo crocância",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-430616225D"
          ]
        }
      }
    },
    "NEW-SIDE-S07": {
      "id": "NEW-SIDE-S07",
      "name": "Abóbora moranga assada com tomilho e parmesão",
      "category": "side",
      "origin": "generated_v3",
      "method_overview": "cubos assados até dourar; parmesão no final",
      "seasoning_text": "tomilho, pimenta e parmesão",
      "seasoning_refs": [
        "T017"
      ],
      "source_ids": [
        "SRC-9FAF756059"
      ],
      "adaptation_notes": "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.6,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING017"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING005"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING017",
              "raw_state": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
              "yield_factor": 0.28,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Abóbora moranga assada com tomilho e parmesão",
            "source_method_ids": [
              "PM-SRC-9FAF756059"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cortar a abóbora no formato da adaptação e temperar com tomilho/alho e azeite autorizados."
              },
              {
                "order": 2,
                "instruction": "Assar até ficar macia e começar a dourar."
              },
              {
                "order": 3,
                "instruction": "Adicionar a camada fina de parmesão no final e aumentar o calor/grill somente para dourar."
              }
            ],
            "source_time_reference": [
              "fonte inteira: 1½ h em forno baixo + ~15 min em forno mais alto; cubos exigem bem menos"
            ],
            "source_temperature_reference": [
              "fonte: 150°C/130°C ventilado, final 200°C/180°C"
            ],
            "texture_or_doneness_endpoint": [
              "abóbora macia e bordas/queijo dourados"
            ],
            "adaptation_guardrails": [
              "A fonte usa creme/leite dentro de abóbora inteira; não reintroduzir. Para cubos, usar endpoint e não o tempo de 1½ h.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "cubos assados até dourar; parmesão no final",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-9FAF756059"
          ]
        }
      }
    },
    "NEW-SIDE-S08": {
      "id": "NEW-SIDE-S08",
      "name": "Cogumelos ao alho e ervas",
      "category": "side",
      "origin": "generated_v3",
      "method_overview": "frigideira muito quente; dourar antes de adicionar alho e ervas",
      "seasoning_text": "alho, salsa e pimenta",
      "seasoning_refs": [
        "T046"
      ],
      "source_ids": [
        "SRC-FC94FE0E5A"
      ],
      "adaptation_notes": "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 28,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING025"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING025",
              "raw_state": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
              "yield_factor": 0.44,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Cogumelos ao alho e ervas",
            "source_method_ids": [
              "PM-SRC-FC94FE0E5A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira pesada"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer a frigideira antes de adicionar os cogumelos; evitar lotar a panela."
              },
              {
                "order": 2,
                "instruction": "Dourar em fogo muito alto até a água evaporar e a superfície começar a caramelizar."
              },
              {
                "order": 3,
                "instruction": "Adicionar alho somente depois do dourado principal; cozinhar brevemente."
              },
              {
                "order": 4,
                "instruction": "Finalizar com ervas autorizadas."
              }
            ],
            "source_time_reference": [
              "fonte: cogumelos 4–5 min + alho ~2 min + ervas ~30 s"
            ],
            "source_temperature_reference": [
              "muito alto para cogumelos"
            ],
            "texture_or_doneness_endpoint": [
              "dourados, sem líquido acumulado"
            ],
            "adaptation_guardrails": [
              "Substituir manteiga por azeite quando a manteiga não estiver na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "frigideira muito quente; dourar antes de adicionar alho e ervas",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-FC94FE0E5A"
          ]
        }
      }
    },
    "NEW-SIDE-S09": {
      "id": "NEW-SIDE-S09",
      "name": "Arroz de couve-flor com cominho e coentro",
      "category": "side",
      "origin": "generated_v3",
      "method_overview": "processar em grãos e cozinhar rapidamente sem encharcar",
      "seasoning_text": "cominho e coentro",
      "seasoning_refs": [
        "T099"
      ],
      "source_ids": [
        "SRC-2E05C79E02"
      ],
      "adaptation_notes": "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 47,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING019"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING019",
              "raw_state": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
              "yield_factor": 0.98,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Arroz de couve-flor com cominho e coentro",
            "source_method_ids": [
              "PM-SRC-2E05C79E02"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "processador ou ralador",
              "frigideira larga"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Processar/ralar a couve-flor em pulsos até obter grãos do tamanho de arroz, evitando virar pasta."
              },
              {
                "order": 2,
                "instruction": "Cozinhar rapidamente em frigideira larga com a gordura/temperos autorizados."
              },
              {
                "order": 3,
                "instruction": "Mexer somente até perder o sabor cru e evaporar umidade; não adicionar água."
              }
            ],
            "source_time_reference": [
              "técnica rápida; poucos minutos na frigideira"
            ],
            "source_temperature_reference": [
              "fogo médio-alto"
            ],
            "texture_or_doneness_endpoint": [
              "grãos separados e secos, não pastosos"
            ],
            "adaptation_guardrails": [
              "Cominho/coentro entram conforme ficha.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "processar em grãos e cozinhar rapidamente sem encharcar",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-2E05C79E02"
          ]
        }
      }
    },
    "NEW-SIDE-S10": {
      "id": "NEW-SIDE-S10",
      "name": "Purê de abóbora moranga",
      "category": "side",
      "origin": "generated_v3",
      "method_overview": "assar/cozinhar e processar; sem farinha",
      "seasoning_text": "noz-moscada e pimenta em traço",
      "seasoning_refs": [
        "T028"
      ],
      "source_ids": [
        "SRC-27DD56ED21"
      ],
      "adaptation_notes": "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.6,
        "best_rating_count": 10,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING017"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING017",
              "raw_state": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
              "yield_factor": 0.28,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Purê de abóbora moranga",
            "source_method_ids": [
              "PM-SRC-27DD56ED21"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "assadeira ou panela",
              "processador/amassador"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar ou assar a abóbora até ficar totalmente macia."
              },
              {
                "order": 2,
                "instruction": "Escorrer/evaporar o excesso de água."
              },
              {
                "order": 3,
                "instruction": "Processar ou amassar até textura lisa; ajustar apenas com os ingredientes autorizados."
              }
            ],
            "source_time_reference": [
              "fonte ~40 min total"
            ],
            "source_temperature_reference": [
              "forno/cozimento conforme método; ponto de maciez controla"
            ],
            "texture_or_doneness_endpoint": [
              "purê liso e espesso"
            ],
            "adaptation_guardrails": [
              "Sem farinha; evitar adicionar líquido que não esteja contabilizado.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "assar/cozinhar e processar; sem farinha",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-27DD56ED21"
          ]
        }
      }
    },
    "NEW-SIDE-S11": {
      "id": "NEW-SIDE-S11",
      "name": "Vagem com limão e parmesão",
      "category": "side",
      "origin": "generated_v3",
      "method_overview": "vagem al dente; parmesão e limão no final",
      "seasoning_text": "limão, pimenta e parmesão",
      "seasoning_refs": [
        "T017"
      ],
      "source_ids": [
        "SRC-B14D4E6F34"
      ],
      "adaptation_notes": "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 5.0,
        "best_rating_count": 9,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING022"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING005"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING022",
              "raw_state": "Vagem crua, aparada e cortada, pronta para cozinhar",
              "yield_factor": 0.89,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Vagem com limão e parmesão",
            "source_method_ids": [
              "PM-SRC-B14D4E6F34"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "panela/vaporizador",
              "tigela"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Cozinhar a vagem brevemente até al dente; opcionalmente resfriar para preservar cor quando será armazenada."
              },
              {
                "order": 2,
                "instruction": "Secar bem."
              },
              {
                "order": 3,
                "instruction": "Misturar com limão/mostarda/azeite autorizados e finalizar com parmesão no momento de servir ou após reaquecer."
              }
            ],
            "source_time_reference": [
              "fonte: vapor ~5 min ou fervura ~3 min"
            ],
            "source_temperature_reference": [
              "cozimento curto"
            ],
            "texture_or_doneness_endpoint": [
              "vagem verde e firme; parmesão aderido sem virar pasta"
            ],
            "adaptation_guardrails": [
              "Usar somente a quantidade de parmesão/azeite contabilizada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "vagem al dente; parmesão e limão no final",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-B14D4E6F34"
          ]
        }
      }
    },
    "NEW-SIDE-S12": {
      "id": "NEW-SIDE-S12",
      "name": "Berinjela assada com tomate e manjericão",
      "category": "side",
      "origin": "generated_v3",
      "method_overview": "cubos assados em alta temperatura; tomate entra no final",
      "seasoning_text": "alho, tomate, manjericão e balsâmico em traço",
      "seasoning_refs": [
        "T034"
      ],
      "source_ids": [
        "SRC-04F03C7B96"
      ],
      "adaptation_notes": "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING020",
            "ING023"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING020",
              "raw_state": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
              "yield_factor": 0.94,
              "yield_source_id": "SRC-YIELD-USDA-AH102",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Berinjela assada com tomate e manjericão",
            "source_method_ids": [
              "PM-SRC-04F03C7B96"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Aquecer forno alto e distribuir cubos de berinjela com azeite autorizado e alho em camada única."
              },
              {
                "order": 2,
                "instruction": "Assar inicialmente até começar a dourar."
              },
              {
                "order": 3,
                "instruction": "Adicionar tomate e continuar apenas até amaciar/concentrar sem transformar tudo em purê."
              },
              {
                "order": 4,
                "instruction": "Finalizar com manjericão/ervas autorizadas."
              }
            ],
            "source_time_reference": [
              "fonte: berinjela ~10 min antes de adicionar tomate; tomate ~5 min adicionais"
            ],
            "source_temperature_reference": [
              "220°C / 200°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "berinjela macia e tostada; tomate concentrado"
            ],
            "adaptation_guardrails": [
              "Omitir massa, açúcar e vinagre se não estiverem autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada; óleo e coberturas foram limitados e contabilizados separadamente quando relevantes.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "cubos assados em alta temperatura; tomate entra no final",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-04F03C7B96"
          ]
        }
      }
    },
    "NEW-SIDE-SALAD": {
      "id": "NEW-SIDE-SALAD",
      "name": "Salada de folhas simples",
      "category": "side",
      "origin": "generated_v3",
      "method_overview": "folhas cruas mantidas separadas até servir",
      "seasoning_text": "sal, limão/vinagre e pimenta em traço",
      "seasoning_refs": [
        "T031"
      ],
      "source_ids": [
        "SRC-1E5EE3F844"
      ],
      "adaptation_notes": "Mantida a porção de 50 g da dieta original; tempero sem óleo adicional salvo quando explicitado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 0,
        "best_rating": null,
        "best_rating_count": null,
        "rating_status": "no_numeric_rating_on_referenced_source"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING030"
          ],
          "as_purchased_weight_ingredient_ids": [],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Salada de folhas simples",
            "source_method_ids": [
              "PM-SRC-1E5EE3F844"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "pote com tampa ou batedor"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Combinar ácido, mostarda/aromáticos autorizados e temperos."
              },
              {
                "order": 2,
                "instruction": "Adicionar a gordura contabilizada em fio ou agitar vigorosamente até emulsificar."
              },
              {
                "order": 3,
                "instruction": "Aplicar somente no momento de servir as folhas para preservar crocância."
              }
            ],
            "source_time_reference": [
              "1–2 min de emulsificação/montagem"
            ],
            "source_temperature_reference": [
              "frio"
            ],
            "texture_or_doneness_endpoint": [
              "emulsão temporariamente homogênea"
            ],
            "adaptation_guardrails": [
              "A quantidade de óleo deve ser exatamente a da porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Mantida a porção de 50 g da dieta original; tempero sem óleo adicional salvo quando explicitado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "folhas cruas mantidas separadas até servir",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-1E5EE3F844"
          ]
        }
      }
    },
    "SUP-CREATINE-VITAFOR": {
      "id": "SUP-CREATINE-VITAFOR",
      "name": "Creatina monohidratada Vitafor — 6 g",
      "category": "supplement",
      "origin": "generated_v3",
      "method_overview": "dissolver/ingerir conforme orientação da nutricionista",
      "seasoning_text": null,
      "seasoning_refs": [],
      "source_ids": [
        "SRC-D4E6A3162D"
      ],
      "adaptation_notes": "Mantidos os 6 g prescritos no almoço original; suplemento registrado separadamente das receitas culinárias. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 0,
        "best_rating": null,
        "best_rating_count": null,
        "rating_status": "no_numeric_rating_on_referenced_source"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [],
          "as_purchased_weight_ingredient_ids": [
            "ING032"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Creatina monohidratada Vitafor — 6 g",
            "source_method_ids": [
              "PM-SRC-D4E6A3162D"
            ],
            "grounding_level": "existing_sourced_overview",
            "equipment": [],
            "steps": [
              {
                "order": 1,
                "instruction": "Aplicar esta característica operacional da ficha: dissolver/ingerir conforme orientação da nutricionista."
              }
            ],
            "source_time_reference": [],
            "source_temperature_reference": [],
            "texture_or_doneness_endpoint": [],
            "adaptation_guardrails": [
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Mantidos os 6 g prescritos no almoço original; suplemento registrado separadamente das receitas culinárias.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "dissolver/ingerir conforme orientação da nutricionista",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 1,
          "all_source_method_ids": [
            "PM-SRC-D4E6A3162D"
          ]
        }
      }
    },
    "NEW-B-EGG-E01": {
      "id": "NEW-B-EGG-E01",
      "name": "Omelete francesa dobrada",
      "category": "breakfast_component",
      "origin": "generated_v3",
      "method_overview": "frigideira antiaderente; centro ainda úmido antes de dobrar",
      "seasoning_text": "sal, pimenta; queijo/ervas conforme opção",
      "seasoning_refs": [],
      "source_ids": [
        "SRC-9E9B51B6F8"
      ],
      "adaptation_notes": "Base técnica preservada; farinha, massa ou acompanhamentos amiláceos não são usados. Porção calculada no uso da receita. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 117,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Omelete francesa dobrada",
            "source_method_ids": [
              "PM-SRC-9E9B51B6F8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente",
              "batedor ou garfo",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater os ovos e temperar."
              },
              {
                "order": 2,
                "instruction": "Aquecer a frigideira em fogo médio-baixo com a gordura prevista na porção."
              },
              {
                "order": 3,
                "instruction": "Adicionar os ovos; à medida que firmarem, puxar as partes cozidas para o centro e inclinar a frigideira para o ovo ainda líquido ocupar os espaços."
              },
              {
                "order": 4,
                "instruction": "Quando estiver quase firme, adicionar o recheio autorizado, dobrar e retirar antes de ressecar."
              }
            ],
            "source_time_reference": [
              "cerca de 5 min de cocção na receita básica"
            ],
            "source_temperature_reference": [
              "fogo médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "omelete firme por fora e ainda macia/úmida no interior"
            ],
            "adaptation_guardrails": [
              "Usar apenas o queijo e demais recheios presentes na porção adaptada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Base técnica preservada; farinha, massa ou acompanhamentos amiláceos não são usados.",
          "Porção calculada no uso da receita.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "frigideira antiaderente; centro ainda úmido antes de dobrar",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-9E9B51B6F8"
          ]
        }
      }
    },
    "NEW-B-EGG-E02": {
      "id": "NEW-B-EGG-E02",
      "name": "Omelete na air fryer",
      "category": "breakfast_component",
      "origin": "generated_v3",
      "method_overview": "air fryer em recipiente baixo até firmar sem ressecar",
      "seasoning_text": "sal, pimenta; queijo/ervas conforme opção",
      "seasoning_refs": [],
      "source_ids": [
        "SRC-A07C37A0EF"
      ],
      "adaptation_notes": "Base técnica preservada; farinha, massa ou acompanhamentos amiláceos não são usados. Porção calculada no uso da receita. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 5.0,
        "best_rating_count": 7,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Omelete na air fryer",
            "source_method_ids": [
              "PM-SRC-A07C37A0EF"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "air fryer",
              "recipiente baixo antiaderente resistente ao calor",
              "batedor"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Pré-aquecer a air fryer com o recipiente dentro."
              },
              {
                "order": 2,
                "instruction": "Bater ovos e misturar somente os recheios autorizados."
              },
              {
                "order": 3,
                "instruction": "Adicionar a gordura prevista ao recipiente, despejar a mistura e cozinhar até inflar e dourar."
              }
            ],
            "source_time_reference": [
              "8–10 min"
            ],
            "source_temperature_reference": [
              "180°C"
            ],
            "texture_or_doneness_endpoint": [
              "inflada, dourada e recém-firme"
            ],
            "adaptation_guardrails": [
              "A quantidade de gordura é a da porção, não a da receita-fonte.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Base técnica preservada; farinha, massa ou acompanhamentos amiláceos não são usados.",
          "Porção calculada no uso da receita.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "air fryer em recipiente baixo até firmar sem ressecar",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A07C37A0EF"
          ]
        }
      }
    },
    "NEW-B-EGG-E03": {
      "id": "NEW-B-EGG-E03",
      "name": "Quiche sem massa",
      "category": "breakfast_component",
      "origin": "generated_v3",
      "method_overview": "assada em ramequim/forma pequena; textura de custard salgado",
      "seasoning_text": "sal, pimenta; queijo/ervas conforme opção",
      "seasoning_refs": [],
      "source_ids": [
        "SRC-73EC562C77"
      ],
      "adaptation_notes": "Base técnica preservada; farinha, massa ou acompanhamentos amiláceos não são usados. Porção calculada no uso da receita. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.6,
        "best_rating_count": 49,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Quiche sem massa",
            "source_method_ids": [
              "PM-SRC-73EC562C77"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "forma/ramequim",
              "frigideira",
              "batedor",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Pré-cozinhar recheios úmidos para retirar excesso de água."
              },
              {
                "order": 2,
                "instruction": "Bater ovos com os lácteos/queijo que realmente constem na adaptação e temperar."
              },
              {
                "order": 3,
                "instruction": "Combinar recheio e ovos, colocar na forma e finalizar com o queijo autorizado."
              },
              {
                "order": 4,
                "instruction": "Assar até dourar, mantendo apenas leve tremor central antes do descanso."
              }
            ],
            "source_time_reference": [
              "25–30 min de forno após o pré-preparo"
            ],
            "source_temperature_reference": [
              "180°C / 160°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourada com leve tremor central que termina de firmar no descanso"
            ],
            "adaptation_guardrails": [
              "A fonte usa creme/pancetta; omitir quando não constarem na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Base técnica preservada; farinha, massa ou acompanhamentos amiláceos não são usados.",
          "Porção calculada no uso da receita.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "assada em ramequim/forma pequena; textura de custard salgado",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-73EC562C77"
          ]
        }
      }
    },
    "NEW-B-EGG-E04": {
      "id": "NEW-B-EGG-E04",
      "name": "Omelete enrolada",
      "category": "breakfast_component",
      "origin": "generated_v3",
      "method_overview": "omelete fina enrolada; boa para marmita",
      "seasoning_text": "sal, pimenta; queijo/ervas conforme opção",
      "seasoning_refs": [],
      "source_ids": [
        "SRC-0FB2713DE2"
      ],
      "adaptation_notes": "Base técnica preservada; farinha, massa ou acompanhamentos amiláceos não são usados. Porção calculada no uso da receita. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 25,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Omelete enrolada",
            "source_method_ids": [
              "PM-SRC-0FB2713DE2"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "garfo/batedor",
              "frigideira média antiaderente",
              "tábua"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater o ovo com pequena quantidade de água somente se compatível com a porção."
              },
              {
                "order": 2,
                "instruction": "Aquecer a frigideira antiaderente com apenas a gordura prevista."
              },
              {
                "order": 3,
                "instruction": "Adicionar o ovo e girar para cobrir a base como uma panqueca; cozinhar até firmar, sem necessidade de virar."
              },
              {
                "order": 4,
                "instruction": "Deslizar para uma tábua, adicionar apenas o recheio/molho autorizado e enrolar ainda flexível."
              }
            ],
            "source_time_reference": [
              "fonte: ~10 min de cocção total da receita; lâmina de ovo cozinha em poucos minutos"
            ],
            "source_temperature_reference": [
              "fogo moderado"
            ],
            "texture_or_doneness_endpoint": [
              "lâmina fina de omelete totalmente firme, mas flexível para enrolar"
            ],
            "adaptation_guardrails": [
              "Salsa e coentro da fonte só entram se autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Base técnica preservada; farinha, massa ou acompanhamentos amiláceos não são usados.",
          "Porção calculada no uso da receita.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "omelete fina enrolada; boa para marmita",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-0FB2713DE2"
          ]
        }
      }
    },
    "NEW-B-EGG-E05": {
      "id": "NEW-B-EGG-E05",
      "name": "Muffins de omelete",
      "category": "breakfast_component",
      "origin": "generated_v3",
      "method_overview": "assados em forminhas individuais",
      "seasoning_text": "sal, pimenta; queijo/ervas conforme opção",
      "seasoning_refs": [],
      "source_ids": [
        "SRC-55FF831328"
      ],
      "adaptation_notes": "Base técnica preservada; farinha, massa ou acompanhamentos amiláceos não são usados. Porção calculada no uso da receita. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.3,
        "best_rating_count": 14,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Muffins de omelete",
            "source_method_ids": [
              "PM-SRC-55FF831328"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela/jarra",
              "batedor",
              "ramequins/formas",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Preparar os vegetais/aromáticos autorizados e remover excesso de água quando necessário."
              },
              {
                "order": 2,
                "instruction": "Bater ovos com especiarias e demais recheios autorizados."
              },
              {
                "order": 3,
                "instruction": "Distribuir nos ramequins/formas, sem adicionar ingredientes ausentes da adaptação."
              },
              {
                "order": 4,
                "instruction": "Assar até crescer e firmar; a fonte usa 220°C/200°C ventilado por 20–25 min."
              }
            ],
            "source_time_reference": [
              "fonte: 20–25 min"
            ],
            "source_temperature_reference": [
              "220°C / 200°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "muffins inflados e firmes no centro"
            ],
            "adaptation_guardrails": [
              "A fonte contém courgette/abobrinha; ela é proibida nesta adaptação. Feta/ervilhas entram somente se autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Base técnica preservada; farinha, massa ou acompanhamentos amiláceos não são usados.",
          "Porção calculada no uso da receita.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "assados em forminhas individuais",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-55FF831328"
          ]
        }
      }
    },
    "NEW-B-EGG-E06": {
      "id": "NEW-B-EGG-E06",
      "name": "Frittata assada",
      "category": "breakfast_component",
      "origin": "generated_v3",
      "method_overview": "começa no fogão e termina no forno/grill",
      "seasoning_text": "sal, pimenta; queijo/ervas conforme opção",
      "seasoning_refs": [],
      "source_ids": [
        "SRC-F2BCABD66D"
      ],
      "adaptation_notes": "Base técnica preservada; farinha, massa ou acompanhamentos amiláceos não são usados. Porção calculada no uso da receita. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 3.8,
        "best_rating_count": 80,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Frittata assada",
            "source_method_ids": [
              "PM-SRC-F2BCABD66D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "recipiente de forno",
              "tigela/jarra",
              "batedor",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Pré-aquecer o forno e untar o recipiente somente com a gordura prevista, quando houver."
              },
              {
                "order": 2,
                "instruction": "Bater ovos/claras e misturar o queijo e temperos autorizados."
              },
              {
                "order": 3,
                "instruction": "Despejar no recipiente e distribuir os sólidos uniformemente."
              },
              {
                "order": 4,
                "instruction": "Assar até o centro firmar e a superfície ficar levemente dourada; repousar alguns minutos antes de cortar."
              }
            ],
            "source_time_reference": [
              "fonte: 35–40 min de forno"
            ],
            "source_temperature_reference": [
              "190°C / 170°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "centro firme e topo dourado"
            ],
            "adaptation_guardrails": [
              "Pasta, milho, ervilha, pimentão e leite da fonte não entram na versão simplificada salvo se presentes na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Base técnica preservada; farinha, massa ou acompanhamentos amiláceos não são usados.",
          "Porção calculada no uso da receita.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "começa no fogão e termina no forno/grill",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-F2BCABD66D"
          ]
        }
      }
    },
    "NEW-B-EGG-E07": {
      "id": "NEW-B-EGG-E07",
      "name": "Egg bites",
      "category": "breakfast_component",
      "origin": "generated_v3",
      "method_overview": "mistura batida e assada em moldes; textura macia",
      "seasoning_text": "sal, pimenta; queijo/ervas conforme opção",
      "seasoning_refs": [],
      "source_ids": [
        "SRC-7C7CF77559"
      ],
      "adaptation_notes": "Base técnica preservada; farinha, massa ou acompanhamentos amiláceos não são usados. Porção calculada no uso da receita. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 0,
        "best_rating": null,
        "best_rating_count": null,
        "rating_status": "no_numeric_rating_on_referenced_source"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Egg bites",
            "source_method_ids": [
              "PM-SRC-7C7CF77559"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "liquidificador",
              "forma de muffin/silicone",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater ovos/claras com o queijo e temperos efetivamente previstos até a mistura ficar homogênea."
              },
              {
                "order": 2,
                "instruction": "Distribuir qualquer recheio já cozido autorizado nas cavidades e completar com a mistura de ovos."
              },
              {
                "order": 3,
                "instruction": "Assar até os bites inflarem e o centro firmar; deixar repousar brevemente antes de desenformar."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 25 min"
            ],
            "source_temperature_reference": [
              "350°F / ~177°C"
            ],
            "texture_or_doneness_endpoint": [
              "inflados e firmes no centro"
            ],
            "adaptation_guardrails": [
              "A fonte usa cottage cheese, cheddar e sausage; substituir/omitir conforme a porção. Frango, quando presente na nossa versão, entra já cozido como recheio.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Base técnica preservada; farinha, massa ou acompanhamentos amiláceos não são usados.",
          "Porção calculada no uso da receita.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "mistura batida e assada em moldes; textura macia",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-7C7CF77559"
          ]
        }
      }
    },
    "NEW-B-EGG-E08": {
      "id": "NEW-B-EGG-E08",
      "name": "Omelete de caneca no micro-ondas",
      "category": "breakfast_component",
      "origin": "generated_v3",
      "method_overview": "cozimento curto em pulsos; mexer uma vez para textura uniforme",
      "seasoning_text": "sal, pimenta; queijo/ervas conforme opção",
      "seasoning_refs": [],
      "source_ids": [
        "SRC-415FA9B3F1"
      ],
      "adaptation_notes": "Base técnica preservada; farinha, massa ou acompanhamentos amiláceos não são usados. Porção calculada no uso da receita. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.4,
        "best_rating_count": 6,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Omelete de caneca no micro-ondas",
            "source_method_ids": [
              "PM-SRC-415FA9B3F1"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "caneca grande própria para micro-ondas",
              "garfo"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Untar/coating da caneca apenas com a gordura prevista na porção."
              },
              {
                "order": 2,
                "instruction": "Bater ovos e misturar recheios autorizados."
              },
              {
                "order": 3,
                "instruction": "Cozinhar em pulsos curtos, mexendo entre os primeiros pulsos para uniformizar."
              },
              {
                "order": 4,
                "instruction": "Descansar 1 min; se necessário, terminar em potência reduzida por um pulso curto."
              }
            ],
            "source_time_reference": [
              "fonte: pulsos de 20 s, descanso de 1 min"
            ],
            "source_temperature_reference": [
              "micro-ondas; finalização opcional a 50% de potência"
            ],
            "texture_or_doneness_endpoint": [
              "firme sem ficar borrachuda"
            ],
            "adaptation_guardrails": [
              "A potência varia; usar os pulsos como referência, não como garantia.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Base técnica preservada; farinha, massa ou acompanhamentos amiláceos não são usados.",
          "Porção calculada no uso da receita.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "cozimento curto em pulsos; mexer uma vez para textura uniforme",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-415FA9B3F1"
          ]
        }
      }
    },
    "NEW-B-EGG-E09": {
      "id": "NEW-B-EGG-E09",
      "name": "Frittata de cogumelos adaptada",
      "category": "breakfast_component",
      "origin": "generated_v3",
      "method_overview": "cogumelos salteados; ovos finalizados no forno",
      "seasoning_text": "sal, pimenta; queijo/ervas conforme opção",
      "seasoning_refs": [],
      "source_ids": [
        "SRC-7A4C9CE916"
      ],
      "adaptation_notes": "Base técnica preservada; farinha, massa ou acompanhamentos amiláceos não são usados. Porção calculada no uso da receita. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 55,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING025",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING025",
              "raw_state": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
              "yield_factor": 0.44,
              "yield_source_id": "SRC-YIELD-USDA-VEG",
              "quality": "medium",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frittata de cogumelos adaptada",
            "source_method_ids": [
              "PM-SRC-7A4C9CE916"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente apta para grill",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar os cogumelos para remover umidade."
              },
              {
                "order": 2,
                "instruction": "Adicionar a proteína/folhas autorizadas e aquecer brevemente."
              },
              {
                "order": 3,
                "instruction": "Adicionar ovos batidos, cozinhar em fogo baixo até quase firmes e finalizar sob grill com queijo quando previsto."
              }
            ],
            "source_time_reference": [
              "fonte: cogumelos ~2 min, recheio ~1 min, ovos ~3 min, grill ~2 min"
            ],
            "source_temperature_reference": [
              "fogo alto para cogumelos; baixo para ovos; grill alto"
            ],
            "texture_or_doneness_endpoint": [
              "base firme e topo recém-dourado"
            ],
            "adaptation_guardrails": [
              "Frango pode substituir presunto; espinafre só se estiver na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Base técnica preservada; farinha, massa ou acompanhamentos amiláceos não são usados.",
          "Porção calculada no uso da receita.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "cogumelos salteados; ovos finalizados no forno",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-7A4C9CE916"
          ]
        }
      }
    },
    "NEW-B-EGG-E10": {
      "id": "NEW-B-EGG-E10",
      "name": "Omelete de queijo",
      "category": "breakfast_component",
      "origin": "generated_v3",
      "method_overview": "frigideira antiaderente; queijo incorporado antes de dobrar",
      "seasoning_text": "sal, pimenta; queijo/ervas conforme opção",
      "seasoning_refs": [],
      "source_ids": [
        "SRC-2FEC385533"
      ],
      "adaptation_notes": "Base técnica preservada; farinha, massa ou acompanhamentos amiláceos não são usados. Porção calculada no uso da receita. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 12,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": []
        },
        "components": [
          {
            "name": "Omelete de queijo",
            "source_method_ids": [
              "PM-SRC-2FEC385533"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente",
              "batedor ou garfo",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater os ovos e temperar."
              },
              {
                "order": 2,
                "instruction": "Aquecer a frigideira em fogo médio-baixo com a gordura prevista na porção."
              },
              {
                "order": 3,
                "instruction": "Adicionar os ovos; à medida que firmarem, puxar as partes cozidas para o centro e inclinar a frigideira para o ovo ainda líquido ocupar os espaços."
              },
              {
                "order": 4,
                "instruction": "Quando estiver quase firme, adicionar o recheio autorizado, dobrar e retirar antes de ressecar."
              }
            ],
            "source_time_reference": [
              "cerca de 5 min de cocção na receita básica"
            ],
            "source_temperature_reference": [
              "fogo médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "omelete firme por fora e ainda macia/úmida no interior"
            ],
            "adaptation_guardrails": [
              "Usar apenas o queijo e demais recheios presentes na porção adaptada.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Base técnica preservada; farinha, massa ou acompanhamentos amiláceos não são usados.",
          "Porção calculada no uso da receita.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "frigideira antiaderente; queijo incorporado antes de dobrar",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-2FEC385533"
          ]
        }
      }
    },
    "NEW-B-CH-C01": {
      "id": "NEW-B-CH-C01",
      "name": "frango ao limão e alho",
      "category": "breakfast_component",
      "origin": "generated_v3",
      "method_overview": "grelhado/chapado em tiras",
      "seasoning_text": "limão, alho, páprica e pimenta",
      "seasoning_refs": [
        "T021"
      ],
      "source_ids": [
        "SRC-08D66807B8"
      ],
      "adaptation_notes": "Porção reescalada; marinadas açucaradas foram omitidas ou reduzidas a traços. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "frango ao limão e alho",
            "source_method_ids": [
              "PM-SRC-08D66807B8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela não metálica",
              "grelha/chapa ou grill",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro."
              },
              {
                "order": 3,
                "instruction": "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada."
              },
              {
                "order": 4,
                "instruction": "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h"
            ],
            "source_temperature_reference": [
              "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido"
            ],
            "texture_or_doneness_endpoint": [
              "bem dourado por fora e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
              "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada; marinadas açucaradas foram omitidas ou reduzidas a traços.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "grelhado/chapado em tiras",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-08D66807B8"
          ]
        }
      }
    },
    "NEW-B-CH-C02": {
      "id": "NEW-B-CH-C02",
      "name": "frango jerk",
      "category": "breakfast_component",
      "origin": "generated_v3",
      "method_overview": "grelhado/assado; marinada intensa",
      "seasoning_text": "tomilho, pimenta-da-jamaica, alho e gengibre",
      "seasoning_refs": [
        "T101"
      ],
      "source_ids": [
        "SRC-A9091F6283"
      ],
      "adaptation_notes": "Porção reescalada; marinadas açucaradas foram omitidas ou reduzidas a traços. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.3,
        "best_rating_count": 36,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "frango jerk",
            "source_method_ids": [
              "PM-SRC-A9091F6283"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador ou pilão",
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Processar/misturar os temperos jerk, alho, gengibre, tomilho, pimenta e limão/lima autorizados até formar pasta."
              },
              {
                "order": 2,
                "instruction": "Cobrir o frango uniformemente com a pasta."
              },
              {
                "order": 3,
                "instruction": "Assar ou grelhar até dourar e cozinhar por completo."
              }
            ],
            "source_time_reference": [
              "fonte para coxas com osso: 45–50 min"
            ],
            "source_temperature_reference": [
              "200°C / 180°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado, aromático e cozido"
            ],
            "adaptation_guardrails": [
              "Coconut cream e demais ingredientes da fonte só entram se constarem na adaptação; tempo da coxa não deve ser aplicado ao peito.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada; marinadas açucaradas foram omitidas ou reduzidas a traços.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "grelhado/assado; marinada intensa",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A9091F6283"
          ]
        }
      }
    },
    "NEW-B-CH-C03": {
      "id": "NEW-B-CH-C03",
      "name": "frango tikka",
      "category": "breakfast_component",
      "origin": "generated_v3",
      "method_overview": "cubos/espetos grelhados",
      "seasoning_text": "garam masala, alho, gengibre e iogurte em traço",
      "seasoning_refs": [
        "T099"
      ],
      "source_ids": [
        "SRC-C52DCF7F9D"
      ],
      "adaptation_notes": "Porção reescalada; marinadas açucaradas foram omitidas ou reduzidas a traços. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 84,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "frango tikka",
            "source_method_ids": [
              "PM-SRC-C52DCF7F9D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "espetos",
              "grill/forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte e pasta/especiarias tikka autorizadas; envolver os cubos de frango."
              },
              {
                "order": 2,
                "instruction": "Marinar por cerca de 1 h quando possível."
              },
              {
                "order": 3,
                "instruction": "Retirar excesso de marinada, colocar nos espetos e grelhar, virando periodicamente."
              },
              {
                "order": 4,
                "instruction": "Retirar quando bem dourado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte: 15–20 min sob grill médio; marinada opcional ~1 h"
            ],
            "source_temperature_reference": [
              "grill médio"
            ],
            "texture_or_doneness_endpoint": [
              "bordas douradas e centro cozido"
            ],
            "adaptation_guardrails": [
              "Usar iogurte zero lactose; tomate/chapati/salada da fonte não entram salvo se listados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada; marinadas açucaradas foram omitidas ou reduzidas a traços.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "cubos/espetos grelhados",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-C52DCF7F9D"
          ]
        }
      }
    },
    "NEW-B-CH-C04": {
      "id": "NEW-B-CH-C04",
      "name": "frango ao curry seco",
      "category": "breakfast_component",
      "origin": "generated_v3",
      "method_overview": "cubos salteados até especiarias aderirem",
      "seasoning_text": "curry, cominho e coentro",
      "seasoning_refs": [
        "T099"
      ],
      "source_ids": [
        "SRC-A400F927EE"
      ],
      "adaptation_notes": "Porção reescalada; marinadas açucaradas foram omitidas ou reduzidas a traços. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 360,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "frango ao curry seco",
            "source_method_ids": [
              "PM-SRC-A400F927EE"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira/panela larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar cebola e aromáticos; adicionar alho/gengibre e cozinhar brevemente."
              },
              {
                "order": 2,
                "instruction": "Adicionar o frango e dourar os cubos."
              },
              {
                "order": 3,
                "instruction": "Adicionar especiarias/pasta e os componentes de molho autorizados; cozinhar em fervura suave até o molho reduzir e aderir."
              },
              {
                "order": 4,
                "instruction": "Quando houver iogurte na adaptação, incorporar no final e evitar fervura forte."
              }
            ],
            "source_time_reference": [
              "fonte: cebola 8–10 min; aromáticos ~1 min; frango ~5 min antes do molho; molho 25–30 min"
            ],
            "source_temperature_reference": [
              "médio → fervura suave"
            ],
            "texture_or_doneness_endpoint": [
              "frango cozido e molho concentrado"
            ],
            "adaptation_guardrails": [
              "A versão “curry seco” pode omitir tomate/água/iogurte; nesse caso parar quando especiarias estiverem aderidas ao frango.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada; marinadas açucaradas foram omitidas ou reduzidas a traços.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "cubos salteados até especiarias aderirem",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A400F927EE"
          ]
        }
      }
    },
    "NEW-B-CH-C05": {
      "id": "NEW-B-CH-C05",
      "name": "almôndegas de frango com limão e manjericão",
      "category": "breakfast_component",
      "origin": "generated_v3",
      "method_overview": "assadas ou douradas; formato de almôndegas pequenas",
      "seasoning_text": "limão, manjericão e alho",
      "seasoning_refs": [
        "T021"
      ],
      "source_ids": [
        "SRC-BAAEF5D467"
      ],
      "adaptation_notes": "Porção reescalada; marinadas açucaradas foram omitidas ou reduzidas a traços. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 4,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "almôndegas de frango com limão e manjericão",
            "source_method_ids": [
              "PM-SRC-BAAEF5D467"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "frigideira larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a proteína crua moída com limão, manjericão, alho e somente os ligantes/queijo que estejam autorizados."
              },
              {
                "order": 2,
                "instruction": "Moldar almôndegas uniformes; a fonte usa unidades de cerca de 35 g cruas."
              },
              {
                "order": 3,
                "instruction": "Dourar as almôndegas em fogo médio-alto, movimentando para colorir todos os lados."
              },
              {
                "order": 4,
                "instruction": "Quando houver molho de tomate autorizado, terminar o cozimento em fervura suave até o centro estar cozido; sem molho, concluir na frigideira/forno conforme a ficha."
              }
            ],
            "source_time_reference": [
              "fonte: dourar 6–8 min; depois 15 min no molho"
            ],
            "source_temperature_reference": [
              "médio-alto para dourar; fervura suave no molho"
            ],
            "texture_or_doneness_endpoint": [
              "douradas por fora e cozidas no centro"
            ],
            "adaptation_guardrails": [
              "Breadcrumbs, leite, pesto, tomate e açúcar só entram se estiverem autorizados; para nossa versão simples, preservar principalmente limão/manjericão/alho e a técnica de moldar+dourar.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada; marinadas açucaradas foram omitidas ou reduzidas a traços.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "assadas ou douradas; formato de almôndegas pequenas",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-BAAEF5D467"
          ]
        }
      }
    },
    "NEW-B-CH-C06": {
      "id": "NEW-B-CH-C06",
      "name": "frango estilo souvlaki",
      "category": "breakfast_component",
      "origin": "generated_v3",
      "method_overview": "cubos/espetos grelhados",
      "seasoning_text": "limão, orégano e alho",
      "seasoning_refs": [
        "T002"
      ],
      "source_ids": [
        "SRC-08D66807B8"
      ],
      "adaptation_notes": "Porção reescalada; marinadas açucaradas foram omitidas ou reduzidas a traços. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "frango estilo souvlaki",
            "source_method_ids": [
              "PM-SRC-08D66807B8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela não metálica",
              "grelha/chapa ou grill",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro."
              },
              {
                "order": 3,
                "instruction": "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada."
              },
              {
                "order": 4,
                "instruction": "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h"
            ],
            "source_temperature_reference": [
              "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido"
            ],
            "texture_or_doneness_endpoint": [
              "bem dourado por fora e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
              "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada; marinadas açucaradas foram omitidas ou reduzidas a traços.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "cubos/espetos grelhados",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-08D66807B8"
          ]
        }
      }
    },
    "NEW-B-CH-C07": {
      "id": "NEW-B-CH-C07",
      "name": "frango com za’atar e limão",
      "category": "breakfast_component",
      "origin": "generated_v3",
      "method_overview": "assado ou grelhado",
      "seasoning_text": "za’atar e limão",
      "seasoning_refs": [
        "T102"
      ],
      "source_ids": [
        "SRC-08D66807B8"
      ],
      "adaptation_notes": "Porção reescalada; marinadas açucaradas foram omitidas ou reduzidas a traços. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "frango com za’atar e limão",
            "source_method_ids": [
              "PM-SRC-08D66807B8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela não metálica",
              "grelha/chapa ou grill",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro."
              },
              {
                "order": 3,
                "instruction": "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada."
              },
              {
                "order": 4,
                "instruction": "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h"
            ],
            "source_temperature_reference": [
              "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido"
            ],
            "texture_or_doneness_endpoint": [
              "bem dourado por fora e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
              "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada; marinadas açucaradas foram omitidas ou reduzidas a traços.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "assado ou grelhado",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-08D66807B8"
          ]
        }
      }
    },
    "NEW-B-CH-C08": {
      "id": "NEW-B-CH-C08",
      "name": "frango com mostarda e ervas",
      "category": "breakfast_component",
      "origin": "generated_v3",
      "method_overview": "grelhado; mostarda em camada fina",
      "seasoning_text": "mostarda e ervas",
      "seasoning_refs": [
        "T004"
      ],
      "source_ids": [
        "SRC-08D66807B8"
      ],
      "adaptation_notes": "Porção reescalada; marinadas açucaradas foram omitidas ou reduzidas a traços. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "frango com mostarda e ervas",
            "source_method_ids": [
              "PM-SRC-08D66807B8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela não metálica",
              "grelha/chapa ou grill",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro."
              },
              {
                "order": 3,
                "instruction": "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada."
              },
              {
                "order": 4,
                "instruction": "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h"
            ],
            "source_temperature_reference": [
              "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido"
            ],
            "texture_or_doneness_endpoint": [
              "bem dourado por fora e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
              "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada; marinadas açucaradas foram omitidas ou reduzidas a traços.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "grelhado; mostarda em camada fina",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-08D66807B8"
          ]
        }
      }
    },
    "NEW-B-SWEET-01": {
      "id": "NEW-B-SWEET-01",
      "name": "Panqueca proteica low-carb — baunilha e canela",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "frigideira antiaderente; discos pequenos",
      "seasoning_text": "baunilha e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Panqueca proteica low-carb — baunilha e canela",
            "source_method_ids": [
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 3,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 4,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "frigideira antiaderente; discos pequenos",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-B-SWEET-02": {
      "id": "NEW-B-SWEET-02",
      "name": "Panqueca proteica low-carb — limão e baunilha",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "frigideira antiaderente; discos pequenos",
      "seasoning_text": "limão e baunilha",
      "seasoning_refs": [
        "T111"
      ],
      "source_ids": [
        "SRC-63E09E4CC0",
        "SRC-3E8E96B92A"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 32,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Panqueca proteica low-carb — limão e baunilha",
            "source_method_ids": [
              "PM-SRC-63E09E4CC0",
              "PM-SRC-3E8E96B92A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "batedor",
              "frigideira antiaderente",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 3,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 4,
                "instruction": "Virar e terminar apenas até o centro firmar."
              },
              {
                "order": 5,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 6,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 7,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 8,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte: 2–3 min primeiro lado + ~2 min segundo",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "médio-baixo",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "bordas firmes, exterior dourado e centro cozido",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "frigideira antiaderente; discos pequenos",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-63E09E4CC0",
            "PM-SRC-3E8E96B92A"
          ]
        }
      }
    },
    "NEW-B-SWEET-03": {
      "id": "NEW-B-SWEET-03",
      "name": "Panqueca proteica low-carb — morango e baunilha",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "frigideira antiaderente; discos pequenos",
      "seasoning_text": "morango e baunilha",
      "seasoning_refs": [
        "T113"
      ],
      "source_ids": [
        "SRC-63E09E4CC0",
        "SRC-E6C55B7F2D"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING013",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Panqueca proteica low-carb — morango e baunilha",
            "source_method_ids": [
              "PM-SRC-63E09E4CC0",
              "PM-SRC-E6C55B7F2D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "batedor",
              "frigideira antiaderente",
              "liquidificador/processador",
              "recipiente de freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 3,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 4,
                "instruction": "Virar e terminar apenas até o centro firmar."
              },
              {
                "order": 5,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 6,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 7,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 8,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              }
            ],
            "source_time_reference": [
              "fonte: 2–3 min primeiro lado + ~2 min segundo",
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes"
            ],
            "source_temperature_reference": [
              "médio-baixo",
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "bordas firmes, exterior dourado e centro cozido",
              "cremoso/congelado com cristais pequenos"
            ],
            "adaptation_guardrails": [
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "frigideira antiaderente; discos pequenos",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-63E09E4CC0",
            "PM-SRC-E6C55B7F2D"
          ]
        }
      }
    },
    "NEW-B-SWEET-04": {
      "id": "NEW-B-SWEET-04",
      "name": "Panqueca proteica low-carb — canela estilo cinnamon-roll",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "frigideira antiaderente; discos pequenos",
      "seasoning_text": "canela estilo cinnamon-roll",
      "seasoning_refs": [
        "T115"
      ],
      "source_ids": [
        "SRC-63E09E4CC0",
        "SRC-A8DDED5CA2"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.6,
        "best_rating_count": 17,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Panqueca proteica low-carb — canela estilo cinnamon-roll",
            "source_method_ids": [
              "PM-SRC-63E09E4CC0",
              "PM-SRC-A8DDED5CA2"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "batedor",
              "frigideira antiaderente",
              "tigela/jarra",
              "squeeze bottle ou saco de confeitar opcional",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 3,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 4,
                "instruction": "Virar e terminar apenas até o centro firmar."
              },
              {
                "order": 5,
                "instruction": "Misturar a massa adaptada até lisa e homogênea."
              },
              {
                "order": 6,
                "instruction": "Preparar o componente de canela/swirl somente com ingredientes autorizados e, se aplicável, colocar em bico/saco para dosar."
              },
              {
                "order": 7,
                "instruction": "Cozinhar a panqueca em fogo baixo-médio; quando as bordas firmarem e surgirem bolhas, aplicar o swirl autorizado e virar com cuidado."
              },
              {
                "order": 8,
                "instruction": "Terminar o segundo lado apenas até o centro estar cozido; a fonte usa cerca de 2–3 min no segundo lado para sua massa original."
              }
            ],
            "source_time_reference": [
              "fonte: 2–3 min primeiro lado + ~2 min segundo",
              "fonte: segundo lado ~2–3 min; primeiro lado guiado por bordas firmes/bolhas"
            ],
            "source_temperature_reference": [
              "médio-baixo",
              "fogo baixo-médio"
            ],
            "texture_or_doneness_endpoint": [
              "bordas firmes, exterior dourado e centro cozido",
              "superfície firme, centro cozido e desenho de canela preservado"
            ],
            "adaptation_guardrails": [
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Açúcar, maple syrup, manteiga, farinha e iogurte da fonte não entram automaticamente.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "frigideira antiaderente; discos pequenos",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-63E09E4CC0",
            "PM-SRC-A8DDED5CA2"
          ]
        }
      }
    },
    "NEW-B-SWEET-05": {
      "id": "NEW-B-SWEET-05",
      "name": "Panqueca proteica low-carb — pumpkin spice",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "frigideira antiaderente; discos pequenos",
      "seasoning_text": "pumpkin spice",
      "seasoning_refs": [
        "T117"
      ],
      "source_ids": [
        "SRC-63E09E4CC0",
        "SRC-AD6F9E9285"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Panqueca proteica low-carb — pumpkin spice",
            "source_method_ids": [
              "PM-SRC-63E09E4CC0",
              "PM-SRC-AD6F9E9285"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "batedor",
              "frigideira antiaderente",
              "tigelas",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 3,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 4,
                "instruction": "Virar e terminar apenas até o centro firmar."
              },
              {
                "order": 5,
                "instruction": "Misturar a base líquida autorizada com o purê de abóbora e a gema quando presentes."
              },
              {
                "order": 6,
                "instruction": "Formar uma massa homogênea, sem grumos."
              },
              {
                "order": 7,
                "instruction": "Bater a clara até firme e incorporar delicadamente para dar leveza quando a versão adaptada contiver clara separada."
              },
              {
                "order": 8,
                "instruction": "Cozinhar em frigideira antiaderente e virar somente quando muitas bolhas surgirem e a superfície começar a secar."
              },
              {
                "order": 9,
                "instruction": "Terminar o segundo lado sem escurecer excessivamente."
              }
            ],
            "source_time_reference": [
              "fonte: 2–3 min primeiro lado + ~2 min segundo",
              "fonte: guiado visualmente por bolhas e secagem da superfície"
            ],
            "source_temperature_reference": [
              "médio-baixo",
              "fogo médio a médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "bordas firmes, exterior dourado e centro cozido",
              "panqueca leve, firme e cozida no centro, sem base queimada"
            ],
            "adaptation_guardrails": [
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Farinha e leite da fonte não entram se não estiverem na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "frigideira antiaderente; discos pequenos",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-63E09E4CC0",
            "PM-SRC-AD6F9E9285"
          ]
        }
      }
    },
    "NEW-B-SWEET-06": {
      "id": "NEW-B-SWEET-06",
      "name": "Panqueca proteica de whey — banana e canela",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "massa batida; frigideira antiaderente",
      "seasoning_text": "banana e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-88BF8D7441",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.2,
        "best_rating_count": 86,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING015",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Panqueca proteica de whey — banana e canela",
            "source_method_ids": [
              "PM-SRC-88BF8D7441",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "liquidificador",
              "frigideira antiaderente",
              "espátula",
              "tigela",
              "batedor"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater os ingredientes da massa até ficar lisa; se houver fruta, incorporar na quantidade prevista."
              },
              {
                "order": 2,
                "instruction": "Aquecer uma película da gordura contabilizada."
              },
              {
                "order": 3,
                "instruction": "Formar discos com espaço entre eles; virar quando surgirem bolhas/firmar a superfície e a base estiver dourada."
              },
              {
                "order": 4,
                "instruction": "Cozinhar o segundo lado até firmar."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "fonte: 1–2 min primeiro lado + ~1 min segundo",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "frigideira quente/moderada",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "douradas e cozidas no centro",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Aveia/leite/coberturas da fonte só entram se constarem na versão adaptada.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "massa batida; frigideira antiaderente",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-88BF8D7441",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-B-SWEET-07": {
      "id": "NEW-B-SWEET-07",
      "name": "Panqueca proteica de whey — laranja e canela",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "massa batida; frigideira antiaderente",
      "seasoning_text": "laranja e canela",
      "seasoning_refs": [
        "T118"
      ],
      "source_ids": [
        "SRC-88BF8D7441",
        "SRC-BDEFB6DD8B"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.2,
        "best_rating_count": 86,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Panqueca proteica de whey — laranja e canela",
            "source_method_ids": [
              "PM-SRC-88BF8D7441",
              "PM-SRC-BDEFB6DD8B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "liquidificador",
              "frigideira antiaderente",
              "espátula",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater os ingredientes da massa até ficar lisa; se houver fruta, incorporar na quantidade prevista."
              },
              {
                "order": 2,
                "instruction": "Aquecer uma película da gordura contabilizada."
              },
              {
                "order": 3,
                "instruction": "Formar discos com espaço entre eles; virar quando surgirem bolhas/firmar a superfície e a base estiver dourada."
              },
              {
                "order": 4,
                "instruction": "Cozinhar o segundo lado até firmar."
              },
              {
                "order": 5,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 6,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 7,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 8,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte: 1–2 min primeiro lado + ~1 min segundo",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "frigideira quente/moderada",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "douradas e cozidas no centro",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Aveia/leite/coberturas da fonte só entram se constarem na versão adaptada.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "massa batida; frigideira antiaderente",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-88BF8D7441",
            "PM-SRC-BDEFB6DD8B"
          ]
        }
      }
    },
    "NEW-B-SWEET-08": {
      "id": "NEW-B-SWEET-08",
      "name": "Panqueca proteica de whey — cardamomo e baunilha",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "massa batida; frigideira antiaderente",
      "seasoning_text": "cardamomo e baunilha",
      "seasoning_refs": [
        "T119"
      ],
      "source_ids": [
        "SRC-88BF8D7441",
        "SRC-BDEFB6DD8B"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.2,
        "best_rating_count": 86,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Panqueca proteica de whey — cardamomo e baunilha",
            "source_method_ids": [
              "PM-SRC-88BF8D7441",
              "PM-SRC-BDEFB6DD8B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "liquidificador",
              "frigideira antiaderente",
              "espátula",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater os ingredientes da massa até ficar lisa; se houver fruta, incorporar na quantidade prevista."
              },
              {
                "order": 2,
                "instruction": "Aquecer uma película da gordura contabilizada."
              },
              {
                "order": 3,
                "instruction": "Formar discos com espaço entre eles; virar quando surgirem bolhas/firmar a superfície e a base estiver dourada."
              },
              {
                "order": 4,
                "instruction": "Cozinhar o segundo lado até firmar."
              },
              {
                "order": 5,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 6,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 7,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 8,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte: 1–2 min primeiro lado + ~1 min segundo",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "frigideira quente/moderada",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "douradas e cozidas no centro",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Aveia/leite/coberturas da fonte só entram se constarem na versão adaptada.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "massa batida; frigideira antiaderente",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-88BF8D7441",
            "PM-SRC-BDEFB6DD8B"
          ]
        }
      }
    },
    "NEW-B-SWEET-09": {
      "id": "NEW-B-SWEET-09",
      "name": "Panqueca soufflé proteica — baunilha e canela",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "claras aeradas e cocção baixa com tampa",
      "seasoning_text": "baunilha e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-BBDD66BAD5",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Panqueca soufflé proteica — baunilha e canela",
            "source_method_ids": [
              "PM-SRC-BBDD66BAD5",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "batedeira/batedor elétrico",
              "frigideira antiaderente com tampa",
              "espátula",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater claras até picos firmes; preparar separadamente a base proteica/aromática autorizada."
              },
              {
                "order": 2,
                "instruction": "Incorporar as claras delicadamente para preservar ar."
              },
              {
                "order": 3,
                "instruction": "Aquecer frigideira em fogo muito baixo com filme mínimo da gordura prevista e montar panquecas altas."
              },
              {
                "order": 4,
                "instruction": "Cozinhar tampado; adicionar uma segunda pequena camada de massa se a versão permitir; virar com cuidado e terminar tampado."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "fonte: 2–4 min + 8 min tampado antes de virar; 4–6 min após virar",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "fogo muito baixo",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "altas, douradas, com leve elasticidade sem colapsar",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "A nossa massa remove açúcar/farinha quando não listados; por isso o tempo da fonte é só referência e o endpoint prevalece.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "claras aeradas e cocção baixa com tampa",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-BBDD66BAD5",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-B-SWEET-10": {
      "id": "NEW-B-SWEET-10",
      "name": "Panqueca soufflé proteica — morango e baunilha",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "claras aeradas e cocção baixa com tampa",
      "seasoning_text": "morango e baunilha",
      "seasoning_refs": [
        "T113"
      ],
      "source_ids": [
        "SRC-BBDD66BAD5",
        "SRC-E6C55B7F2D"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 3.2,
        "best_rating_count": 5,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING013",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Panqueca soufflé proteica — morango e baunilha",
            "source_method_ids": [
              "PM-SRC-BBDD66BAD5",
              "PM-SRC-E6C55B7F2D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "batedeira/batedor elétrico",
              "frigideira antiaderente com tampa",
              "espátula",
              "liquidificador/processador",
              "recipiente de freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater claras até picos firmes; preparar separadamente a base proteica/aromática autorizada."
              },
              {
                "order": 2,
                "instruction": "Incorporar as claras delicadamente para preservar ar."
              },
              {
                "order": 3,
                "instruction": "Aquecer frigideira em fogo muito baixo com filme mínimo da gordura prevista e montar panquecas altas."
              },
              {
                "order": 4,
                "instruction": "Cozinhar tampado; adicionar uma segunda pequena camada de massa se a versão permitir; virar com cuidado e terminar tampado."
              },
              {
                "order": 5,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 6,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 7,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 8,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              }
            ],
            "source_time_reference": [
              "fonte: 2–4 min + 8 min tampado antes de virar; 4–6 min após virar",
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes"
            ],
            "source_temperature_reference": [
              "fogo muito baixo",
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "altas, douradas, com leve elasticidade sem colapsar",
              "cremoso/congelado com cristais pequenos"
            ],
            "adaptation_guardrails": [
              "A nossa massa remove açúcar/farinha quando não listados; por isso o tempo da fonte é só referência e o endpoint prevalece.",
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "claras aeradas e cocção baixa com tampa",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-BBDD66BAD5",
            "PM-SRC-E6C55B7F2D"
          ]
        }
      }
    },
    "NEW-B-SWEET-11": {
      "id": "NEW-B-SWEET-11",
      "name": "Panqueca soufflé proteica — limão e baunilha",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "claras aeradas e cocção baixa com tampa",
      "seasoning_text": "limão e baunilha",
      "seasoning_refs": [
        "T111"
      ],
      "source_ids": [
        "SRC-BBDD66BAD5",
        "SRC-3E8E96B92A"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 32,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Panqueca soufflé proteica — limão e baunilha",
            "source_method_ids": [
              "PM-SRC-BBDD66BAD5",
              "PM-SRC-3E8E96B92A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "batedeira/batedor elétrico",
              "frigideira antiaderente com tampa",
              "espátula",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater claras até picos firmes; preparar separadamente a base proteica/aromática autorizada."
              },
              {
                "order": 2,
                "instruction": "Incorporar as claras delicadamente para preservar ar."
              },
              {
                "order": 3,
                "instruction": "Aquecer frigideira em fogo muito baixo com filme mínimo da gordura prevista e montar panquecas altas."
              },
              {
                "order": 4,
                "instruction": "Cozinhar tampado; adicionar uma segunda pequena camada de massa se a versão permitir; virar com cuidado e terminar tampado."
              },
              {
                "order": 5,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 6,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 7,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 8,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte: 2–4 min + 8 min tampado antes de virar; 4–6 min após virar",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "fogo muito baixo",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "altas, douradas, com leve elasticidade sem colapsar",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "A nossa massa remove açúcar/farinha quando não listados; por isso o tempo da fonte é só referência e o endpoint prevalece.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "claras aeradas e cocção baixa com tampa",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-BBDD66BAD5",
            "PM-SRC-3E8E96B92A"
          ]
        }
      }
    },
    "NEW-B-SWEET-12": {
      "id": "NEW-B-SWEET-12",
      "name": "Panqueca soufflé proteica — laranja e canela",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "claras aeradas e cocção baixa com tampa",
      "seasoning_text": "laranja e canela",
      "seasoning_refs": [
        "T118"
      ],
      "source_ids": [
        "SRC-BBDD66BAD5",
        "SRC-BDEFB6DD8B"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 0,
        "best_rating": null,
        "best_rating_count": null,
        "rating_status": "no_numeric_rating_on_referenced_source"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Panqueca soufflé proteica — laranja e canela",
            "source_method_ids": [
              "PM-SRC-BBDD66BAD5",
              "PM-SRC-BDEFB6DD8B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "batedeira/batedor elétrico",
              "frigideira antiaderente com tampa",
              "espátula",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater claras até picos firmes; preparar separadamente a base proteica/aromática autorizada."
              },
              {
                "order": 2,
                "instruction": "Incorporar as claras delicadamente para preservar ar."
              },
              {
                "order": 3,
                "instruction": "Aquecer frigideira em fogo muito baixo com filme mínimo da gordura prevista e montar panquecas altas."
              },
              {
                "order": 4,
                "instruction": "Cozinhar tampado; adicionar uma segunda pequena camada de massa se a versão permitir; virar com cuidado e terminar tampado."
              },
              {
                "order": 5,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 6,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 7,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 8,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte: 2–4 min + 8 min tampado antes de virar; 4–6 min após virar",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "fogo muito baixo",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "altas, douradas, com leve elasticidade sem colapsar",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "A nossa massa remove açúcar/farinha quando não listados; por isso o tempo da fonte é só referência e o endpoint prevalece.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "claras aeradas e cocção baixa com tampa",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-BBDD66BAD5",
            "PM-SRC-BDEFB6DD8B"
          ]
        }
      }
    },
    "NEW-B-SWEET-13": {
      "id": "NEW-B-SWEET-13",
      "name": "Panqueca soufflé proteica — canela estilo cinnamon-roll",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "claras aeradas e cocção baixa com tampa",
      "seasoning_text": "canela estilo cinnamon-roll",
      "seasoning_refs": [
        "T115"
      ],
      "source_ids": [
        "SRC-BBDD66BAD5",
        "SRC-A8DDED5CA2"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.6,
        "best_rating_count": 17,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Panqueca soufflé proteica — canela estilo cinnamon-roll",
            "source_method_ids": [
              "PM-SRC-BBDD66BAD5",
              "PM-SRC-A8DDED5CA2"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "batedeira/batedor elétrico",
              "frigideira antiaderente com tampa",
              "espátula",
              "tigela/jarra",
              "batedor",
              "squeeze bottle ou saco de confeitar opcional",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater claras até picos firmes; preparar separadamente a base proteica/aromática autorizada."
              },
              {
                "order": 2,
                "instruction": "Incorporar as claras delicadamente para preservar ar."
              },
              {
                "order": 3,
                "instruction": "Aquecer frigideira em fogo muito baixo com filme mínimo da gordura prevista e montar panquecas altas."
              },
              {
                "order": 4,
                "instruction": "Cozinhar tampado; adicionar uma segunda pequena camada de massa se a versão permitir; virar com cuidado e terminar tampado."
              },
              {
                "order": 5,
                "instruction": "Misturar a massa adaptada até lisa e homogênea."
              },
              {
                "order": 6,
                "instruction": "Preparar o componente de canela/swirl somente com ingredientes autorizados e, se aplicável, colocar em bico/saco para dosar."
              },
              {
                "order": 7,
                "instruction": "Cozinhar a panqueca em fogo baixo-médio; quando as bordas firmarem e surgirem bolhas, aplicar o swirl autorizado e virar com cuidado."
              },
              {
                "order": 8,
                "instruction": "Terminar o segundo lado apenas até o centro estar cozido; a fonte usa cerca de 2–3 min no segundo lado para sua massa original."
              }
            ],
            "source_time_reference": [
              "fonte: 2–4 min + 8 min tampado antes de virar; 4–6 min após virar",
              "fonte: segundo lado ~2–3 min; primeiro lado guiado por bordas firmes/bolhas"
            ],
            "source_temperature_reference": [
              "fogo muito baixo",
              "fogo baixo-médio"
            ],
            "texture_or_doneness_endpoint": [
              "altas, douradas, com leve elasticidade sem colapsar",
              "superfície firme, centro cozido e desenho de canela preservado"
            ],
            "adaptation_guardrails": [
              "A nossa massa remove açúcar/farinha quando não listados; por isso o tempo da fonte é só referência e o endpoint prevalece.",
              "Açúcar, maple syrup, manteiga, farinha e iogurte da fonte não entram automaticamente.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "claras aeradas e cocção baixa com tampa",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-BBDD66BAD5",
            "PM-SRC-A8DDED5CA2"
          ]
        }
      }
    },
    "NEW-B-SWEET-14": {
      "id": "NEW-B-SWEET-14",
      "name": "Panqueca soufflé proteica — noz-moscada e baunilha",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "claras aeradas e cocção baixa com tampa",
      "seasoning_text": "noz-moscada e baunilha",
      "seasoning_refs": [
        "T114"
      ],
      "source_ids": [
        "SRC-BBDD66BAD5",
        "SRC-3E8E96B92A"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 32,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Panqueca soufflé proteica — noz-moscada e baunilha",
            "source_method_ids": [
              "PM-SRC-BBDD66BAD5",
              "PM-SRC-3E8E96B92A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "batedeira/batedor elétrico",
              "frigideira antiaderente com tampa",
              "espátula",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater claras até picos firmes; preparar separadamente a base proteica/aromática autorizada."
              },
              {
                "order": 2,
                "instruction": "Incorporar as claras delicadamente para preservar ar."
              },
              {
                "order": 3,
                "instruction": "Aquecer frigideira em fogo muito baixo com filme mínimo da gordura prevista e montar panquecas altas."
              },
              {
                "order": 4,
                "instruction": "Cozinhar tampado; adicionar uma segunda pequena camada de massa se a versão permitir; virar com cuidado e terminar tampado."
              },
              {
                "order": 5,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 6,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 7,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 8,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte: 2–4 min + 8 min tampado antes de virar; 4–6 min após virar",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "fogo muito baixo",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "altas, douradas, com leve elasticidade sem colapsar",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "A nossa massa remove açúcar/farinha quando não listados; por isso o tempo da fonte é só referência e o endpoint prevalece.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "claras aeradas e cocção baixa com tampa",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-BBDD66BAD5",
            "PM-SRC-3E8E96B92A"
          ]
        }
      }
    },
    "NEW-B-SWEET-15": {
      "id": "NEW-B-SWEET-15",
      "name": "Waffle proteico low-carb — baunilha e canela",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "waffleira bem aquecida; exterior dourado",
      "seasoning_text": "baunilha e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-F5D734DB70",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.2,
        "best_rating_count": 124,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Waffle proteico low-carb — baunilha e canela",
            "source_method_ids": [
              "PM-SRC-F5D734DB70",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "waffleira",
              "tigela/batedor ou liquidificador",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a massa adaptada até homogênea; para versão aerada, incorporar claras batidas por último quando a ficha indicar."
              },
              {
                "order": 2,
                "instruction": "Pré-aquecer a waffleira conforme o fabricante e untar apenas com a gordura contabilizada."
              },
              {
                "order": 3,
                "instruction": "Adicionar massa suficiente para cobrir a superfície sem transbordar."
              },
              {
                "order": 4,
                "instruction": "Cozinhar até exterior dourado/crocante e centro firme."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "fonte: normalmente 5–6 min na waffleira",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "conforme fabricante da waffleira",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e crocante por fora; firme por dentro",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Farinha, açúcar, manteiga e leite da fonte não entram salvo se listados na porção.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "waffleira bem aquecida; exterior dourado",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-F5D734DB70",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-B-SWEET-16": {
      "id": "NEW-B-SWEET-16",
      "name": "Waffle proteico low-carb — morango e baunilha",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "waffleira bem aquecida; exterior dourado",
      "seasoning_text": "morango e baunilha",
      "seasoning_refs": [
        "T113"
      ],
      "source_ids": [
        "SRC-F5D734DB70",
        "SRC-E6C55B7F2D"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.2,
        "best_rating_count": 124,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING013",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Waffle proteico low-carb — morango e baunilha",
            "source_method_ids": [
              "PM-SRC-F5D734DB70",
              "PM-SRC-E6C55B7F2D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "waffleira",
              "tigela/batedor ou liquidificador",
              "liquidificador/processador",
              "recipiente de freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a massa adaptada até homogênea; para versão aerada, incorporar claras batidas por último quando a ficha indicar."
              },
              {
                "order": 2,
                "instruction": "Pré-aquecer a waffleira conforme o fabricante e untar apenas com a gordura contabilizada."
              },
              {
                "order": 3,
                "instruction": "Adicionar massa suficiente para cobrir a superfície sem transbordar."
              },
              {
                "order": 4,
                "instruction": "Cozinhar até exterior dourado/crocante e centro firme."
              },
              {
                "order": 5,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 6,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 7,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 8,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              }
            ],
            "source_time_reference": [
              "fonte: normalmente 5–6 min na waffleira",
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes"
            ],
            "source_temperature_reference": [
              "conforme fabricante da waffleira",
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e crocante por fora; firme por dentro",
              "cremoso/congelado com cristais pequenos"
            ],
            "adaptation_guardrails": [
              "Farinha, açúcar, manteiga e leite da fonte não entram salvo se listados na porção.",
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "waffleira bem aquecida; exterior dourado",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-F5D734DB70",
            "PM-SRC-E6C55B7F2D"
          ]
        }
      }
    },
    "NEW-B-SWEET-17": {
      "id": "NEW-B-SWEET-17",
      "name": "Waffle proteico low-carb — banana e canela",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "waffleira bem aquecida; exterior dourado",
      "seasoning_text": "banana e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-F5D734DB70",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.2,
        "best_rating_count": 124,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING015",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Waffle proteico low-carb — banana e canela",
            "source_method_ids": [
              "PM-SRC-F5D734DB70",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "waffleira",
              "tigela/batedor ou liquidificador",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a massa adaptada até homogênea; para versão aerada, incorporar claras batidas por último quando a ficha indicar."
              },
              {
                "order": 2,
                "instruction": "Pré-aquecer a waffleira conforme o fabricante e untar apenas com a gordura contabilizada."
              },
              {
                "order": 3,
                "instruction": "Adicionar massa suficiente para cobrir a superfície sem transbordar."
              },
              {
                "order": 4,
                "instruction": "Cozinhar até exterior dourado/crocante e centro firme."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "fonte: normalmente 5–6 min na waffleira",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "conforme fabricante da waffleira",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e crocante por fora; firme por dentro",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Farinha, açúcar, manteiga e leite da fonte não entram salvo se listados na porção.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "waffleira bem aquecida; exterior dourado",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-F5D734DB70",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-B-SWEET-18": {
      "id": "NEW-B-SWEET-18",
      "name": "Waffle proteico low-carb — limão e baunilha",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "waffleira bem aquecida; exterior dourado",
      "seasoning_text": "limão e baunilha",
      "seasoning_refs": [
        "T111"
      ],
      "source_ids": [
        "SRC-F5D734DB70",
        "SRC-3E8E96B92A"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 32,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Waffle proteico low-carb — limão e baunilha",
            "source_method_ids": [
              "PM-SRC-F5D734DB70",
              "PM-SRC-3E8E96B92A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "waffleira",
              "tigela/batedor ou liquidificador",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a massa adaptada até homogênea; para versão aerada, incorporar claras batidas por último quando a ficha indicar."
              },
              {
                "order": 2,
                "instruction": "Pré-aquecer a waffleira conforme o fabricante e untar apenas com a gordura contabilizada."
              },
              {
                "order": 3,
                "instruction": "Adicionar massa suficiente para cobrir a superfície sem transbordar."
              },
              {
                "order": 4,
                "instruction": "Cozinhar até exterior dourado/crocante e centro firme."
              },
              {
                "order": 5,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 6,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 7,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 8,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte: normalmente 5–6 min na waffleira",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "conforme fabricante da waffleira",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e crocante por fora; firme por dentro",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Farinha, açúcar, manteiga e leite da fonte não entram salvo se listados na porção.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "waffleira bem aquecida; exterior dourado",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-F5D734DB70",
            "PM-SRC-3E8E96B92A"
          ]
        }
      }
    },
    "NEW-B-SWEET-19": {
      "id": "NEW-B-SWEET-19",
      "name": "Waffle proteico low-carb — pumpkin spice",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "waffleira bem aquecida; exterior dourado",
      "seasoning_text": "pumpkin spice",
      "seasoning_refs": [
        "T117"
      ],
      "source_ids": [
        "SRC-F5D734DB70",
        "SRC-AD6F9E9285"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.2,
        "best_rating_count": 124,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Waffle proteico low-carb — pumpkin spice",
            "source_method_ids": [
              "PM-SRC-F5D734DB70",
              "PM-SRC-AD6F9E9285"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "waffleira",
              "tigela/batedor ou liquidificador",
              "tigelas",
              "batedor",
              "frigideira antiaderente",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a massa adaptada até homogênea; para versão aerada, incorporar claras batidas por último quando a ficha indicar."
              },
              {
                "order": 2,
                "instruction": "Pré-aquecer a waffleira conforme o fabricante e untar apenas com a gordura contabilizada."
              },
              {
                "order": 3,
                "instruction": "Adicionar massa suficiente para cobrir a superfície sem transbordar."
              },
              {
                "order": 4,
                "instruction": "Cozinhar até exterior dourado/crocante e centro firme."
              },
              {
                "order": 5,
                "instruction": "Misturar a base líquida autorizada com o purê de abóbora e a gema quando presentes."
              },
              {
                "order": 6,
                "instruction": "Formar uma massa homogênea, sem grumos."
              },
              {
                "order": 7,
                "instruction": "Bater a clara até firme e incorporar delicadamente para dar leveza quando a versão adaptada contiver clara separada."
              },
              {
                "order": 8,
                "instruction": "Cozinhar em frigideira antiaderente e virar somente quando muitas bolhas surgirem e a superfície começar a secar."
              },
              {
                "order": 9,
                "instruction": "Terminar o segundo lado sem escurecer excessivamente."
              }
            ],
            "source_time_reference": [
              "fonte: normalmente 5–6 min na waffleira",
              "fonte: guiado visualmente por bolhas e secagem da superfície"
            ],
            "source_temperature_reference": [
              "conforme fabricante da waffleira",
              "fogo médio a médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e crocante por fora; firme por dentro",
              "panqueca leve, firme e cozida no centro, sem base queimada"
            ],
            "adaptation_guardrails": [
              "Farinha, açúcar, manteiga e leite da fonte não entram salvo se listados na porção.",
              "Farinha e leite da fonte não entram se não estiverem na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "waffleira bem aquecida; exterior dourado",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-F5D734DB70",
            "PM-SRC-AD6F9E9285"
          ]
        }
      }
    },
    "NEW-B-SWEET-20": {
      "id": "NEW-B-SWEET-20",
      "name": "Waffle proteico low-carb — canela estilo cinnamon-roll",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "waffleira bem aquecida; exterior dourado",
      "seasoning_text": "canela estilo cinnamon-roll",
      "seasoning_refs": [
        "T115"
      ],
      "source_ids": [
        "SRC-F5D734DB70",
        "SRC-A8DDED5CA2"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.6,
        "best_rating_count": 17,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Waffle proteico low-carb — canela estilo cinnamon-roll",
            "source_method_ids": [
              "PM-SRC-F5D734DB70",
              "PM-SRC-A8DDED5CA2"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "waffleira",
              "tigela/batedor ou liquidificador",
              "tigela/jarra",
              "batedor",
              "squeeze bottle ou saco de confeitar opcional",
              "frigideira antiaderente",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a massa adaptada até homogênea; para versão aerada, incorporar claras batidas por último quando a ficha indicar."
              },
              {
                "order": 2,
                "instruction": "Pré-aquecer a waffleira conforme o fabricante e untar apenas com a gordura contabilizada."
              },
              {
                "order": 3,
                "instruction": "Adicionar massa suficiente para cobrir a superfície sem transbordar."
              },
              {
                "order": 4,
                "instruction": "Cozinhar até exterior dourado/crocante e centro firme."
              },
              {
                "order": 5,
                "instruction": "Misturar a massa adaptada até lisa e homogênea."
              },
              {
                "order": 6,
                "instruction": "Preparar o componente de canela/swirl somente com ingredientes autorizados e, se aplicável, colocar em bico/saco para dosar."
              },
              {
                "order": 7,
                "instruction": "Cozinhar a panqueca em fogo baixo-médio; quando as bordas firmarem e surgirem bolhas, aplicar o swirl autorizado e virar com cuidado."
              },
              {
                "order": 8,
                "instruction": "Terminar o segundo lado apenas até o centro estar cozido; a fonte usa cerca de 2–3 min no segundo lado para sua massa original."
              }
            ],
            "source_time_reference": [
              "fonte: normalmente 5–6 min na waffleira",
              "fonte: segundo lado ~2–3 min; primeiro lado guiado por bordas firmes/bolhas"
            ],
            "source_temperature_reference": [
              "conforme fabricante da waffleira",
              "fogo baixo-médio"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e crocante por fora; firme por dentro",
              "superfície firme, centro cozido e desenho de canela preservado"
            ],
            "adaptation_guardrails": [
              "Farinha, açúcar, manteiga e leite da fonte não entram salvo se listados na porção.",
              "Açúcar, maple syrup, manteiga, farinha e iogurte da fonte não entram automaticamente.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "waffleira bem aquecida; exterior dourado",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-F5D734DB70",
            "PM-SRC-A8DDED5CA2"
          ]
        }
      }
    },
    "NEW-B-SWEET-21": {
      "id": "NEW-B-SWEET-21",
      "name": "Waffle proteico low-carb — laranja e canela",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "waffleira bem aquecida; exterior dourado",
      "seasoning_text": "laranja e canela",
      "seasoning_refs": [
        "T118"
      ],
      "source_ids": [
        "SRC-F5D734DB70",
        "SRC-BDEFB6DD8B"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.2,
        "best_rating_count": 124,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Waffle proteico low-carb — laranja e canela",
            "source_method_ids": [
              "PM-SRC-F5D734DB70",
              "PM-SRC-BDEFB6DD8B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "waffleira",
              "tigela/batedor ou liquidificador",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a massa adaptada até homogênea; para versão aerada, incorporar claras batidas por último quando a ficha indicar."
              },
              {
                "order": 2,
                "instruction": "Pré-aquecer a waffleira conforme o fabricante e untar apenas com a gordura contabilizada."
              },
              {
                "order": 3,
                "instruction": "Adicionar massa suficiente para cobrir a superfície sem transbordar."
              },
              {
                "order": 4,
                "instruction": "Cozinhar até exterior dourado/crocante e centro firme."
              },
              {
                "order": 5,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 6,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 7,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 8,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte: normalmente 5–6 min na waffleira",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "conforme fabricante da waffleira",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e crocante por fora; firme por dentro",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Farinha, açúcar, manteiga e leite da fonte não entram salvo se listados na porção.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "waffleira bem aquecida; exterior dourado",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-F5D734DB70",
            "PM-SRC-BDEFB6DD8B"
          ]
        }
      }
    },
    "NEW-B-SWEET-22": {
      "id": "NEW-B-SWEET-22",
      "name": "Waffle proteico low-carb — cardamomo e baunilha",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "waffleira bem aquecida; exterior dourado",
      "seasoning_text": "cardamomo e baunilha",
      "seasoning_refs": [
        "T119"
      ],
      "source_ids": [
        "SRC-F5D734DB70",
        "SRC-BDEFB6DD8B"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.2,
        "best_rating_count": 124,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Waffle proteico low-carb — cardamomo e baunilha",
            "source_method_ids": [
              "PM-SRC-F5D734DB70",
              "PM-SRC-BDEFB6DD8B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "waffleira",
              "tigela/batedor ou liquidificador",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a massa adaptada até homogênea; para versão aerada, incorporar claras batidas por último quando a ficha indicar."
              },
              {
                "order": 2,
                "instruction": "Pré-aquecer a waffleira conforme o fabricante e untar apenas com a gordura contabilizada."
              },
              {
                "order": 3,
                "instruction": "Adicionar massa suficiente para cobrir a superfície sem transbordar."
              },
              {
                "order": 4,
                "instruction": "Cozinhar até exterior dourado/crocante e centro firme."
              },
              {
                "order": 5,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 6,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 7,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 8,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte: normalmente 5–6 min na waffleira",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "conforme fabricante da waffleira",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado e crocante por fora; firme por dentro",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Farinha, açúcar, manteiga e leite da fonte não entram salvo se listados na porção.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "waffleira bem aquecida; exterior dourado",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-F5D734DB70",
            "PM-SRC-BDEFB6DD8B"
          ]
        }
      }
    },
    "NEW-B-SWEET-23": {
      "id": "NEW-B-SWEET-23",
      "name": "Crepe proteico fino — limão e baunilha",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "frigideira larga; camada fina e flexível",
      "seasoning_text": "limão e baunilha",
      "seasoning_refs": [
        "T111"
      ],
      "source_ids": [
        "SRC-14CCEF0B5D",
        "SRC-3E8E96B92A"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 32,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Crepe proteico fino — limão e baunilha",
            "source_method_ids": [
              "PM-SRC-14CCEF0B5D",
              "PM-SRC-3E8E96B92A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela ou jarra",
              "batedor",
              "frigideira larga antiaderente",
              "concha pequena",
              "espátula",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a massa adaptada até ficar totalmente lisa e homogênea."
              },
              {
                "order": 2,
                "instruction": "Quando a estrutura da massa permitir, deixar repousar antes da cocção; a fonte clássica repousa a massa por 30 min."
              },
              {
                "order": 3,
                "instruction": "Aquecer a frigideira em fogo médio e usar somente a gordura contabilizada, formando uma película muito fina."
              },
              {
                "order": 4,
                "instruction": "Colocar pouca massa e girar a frigideira para formar uma camada fina."
              },
              {
                "order": 5,
                "instruction": "Cozinhar o primeiro lado até dourar e soltar; virar e terminar rapidamente o segundo lado. A fonte usa cerca de 45 s no primeiro lado e 30 s no segundo."
              },
              {
                "order": 6,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 7,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 8,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 9,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte: repouso 30 min; ~45 s no primeiro lado e ~30 s no segundo por crêpe",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "fogo médio",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "crêpe fino, flexível, levemente dourado e sem centro cru",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir farinha, leite, açúcar ou manteiga da fonte se não constarem na porção adaptada. O tempo deve ser encurtado se a massa adaptada for menor/mais proteica.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "frigideira larga; camada fina e flexível",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-14CCEF0B5D",
            "PM-SRC-3E8E96B92A"
          ]
        }
      }
    },
    "NEW-B-SWEET-24": {
      "id": "NEW-B-SWEET-24",
      "name": "Crepe proteico fino — laranja e canela",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "frigideira larga; camada fina e flexível",
      "seasoning_text": "laranja e canela",
      "seasoning_refs": [
        "T118"
      ],
      "source_ids": [
        "SRC-14CCEF0B5D",
        "SRC-BDEFB6DD8B"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.3,
        "best_rating_count": 123,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Crepe proteico fino — laranja e canela",
            "source_method_ids": [
              "PM-SRC-14CCEF0B5D",
              "PM-SRC-BDEFB6DD8B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela ou jarra",
              "batedor",
              "frigideira larga antiaderente",
              "concha pequena",
              "espátula",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a massa adaptada até ficar totalmente lisa e homogênea."
              },
              {
                "order": 2,
                "instruction": "Quando a estrutura da massa permitir, deixar repousar antes da cocção; a fonte clássica repousa a massa por 30 min."
              },
              {
                "order": 3,
                "instruction": "Aquecer a frigideira em fogo médio e usar somente a gordura contabilizada, formando uma película muito fina."
              },
              {
                "order": 4,
                "instruction": "Colocar pouca massa e girar a frigideira para formar uma camada fina."
              },
              {
                "order": 5,
                "instruction": "Cozinhar o primeiro lado até dourar e soltar; virar e terminar rapidamente o segundo lado. A fonte usa cerca de 45 s no primeiro lado e 30 s no segundo."
              },
              {
                "order": 6,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 7,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 8,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 9,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte: repouso 30 min; ~45 s no primeiro lado e ~30 s no segundo por crêpe",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "fogo médio",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "crêpe fino, flexível, levemente dourado e sem centro cru",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir farinha, leite, açúcar ou manteiga da fonte se não constarem na porção adaptada. O tempo deve ser encurtado se a massa adaptada for menor/mais proteica.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "frigideira larga; camada fina e flexível",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-14CCEF0B5D",
            "PM-SRC-BDEFB6DD8B"
          ]
        }
      }
    },
    "NEW-B-SWEET-25": {
      "id": "NEW-B-SWEET-25",
      "name": "Crepe proteico fino — morango e baunilha",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "frigideira larga; camada fina e flexível",
      "seasoning_text": "morango e baunilha",
      "seasoning_refs": [
        "T113"
      ],
      "source_ids": [
        "SRC-14CCEF0B5D",
        "SRC-E6C55B7F2D"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.3,
        "best_rating_count": 123,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING013",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Crepe proteico fino — morango e baunilha",
            "source_method_ids": [
              "PM-SRC-14CCEF0B5D",
              "PM-SRC-E6C55B7F2D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela ou jarra",
              "batedor",
              "frigideira larga antiaderente",
              "concha pequena",
              "espátula",
              "liquidificador/processador",
              "recipiente de freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a massa adaptada até ficar totalmente lisa e homogênea."
              },
              {
                "order": 2,
                "instruction": "Quando a estrutura da massa permitir, deixar repousar antes da cocção; a fonte clássica repousa a massa por 30 min."
              },
              {
                "order": 3,
                "instruction": "Aquecer a frigideira em fogo médio e usar somente a gordura contabilizada, formando uma película muito fina."
              },
              {
                "order": 4,
                "instruction": "Colocar pouca massa e girar a frigideira para formar uma camada fina."
              },
              {
                "order": 5,
                "instruction": "Cozinhar o primeiro lado até dourar e soltar; virar e terminar rapidamente o segundo lado. A fonte usa cerca de 45 s no primeiro lado e 30 s no segundo."
              },
              {
                "order": 6,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 7,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 8,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 9,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              }
            ],
            "source_time_reference": [
              "fonte: repouso 30 min; ~45 s no primeiro lado e ~30 s no segundo por crêpe",
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes"
            ],
            "source_temperature_reference": [
              "fogo médio",
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "crêpe fino, flexível, levemente dourado e sem centro cru",
              "cremoso/congelado com cristais pequenos"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir farinha, leite, açúcar ou manteiga da fonte se não constarem na porção adaptada. O tempo deve ser encurtado se a massa adaptada for menor/mais proteica.",
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "frigideira larga; camada fina e flexível",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-14CCEF0B5D",
            "PM-SRC-E6C55B7F2D"
          ]
        }
      }
    },
    "NEW-B-SWEET-26": {
      "id": "NEW-B-SWEET-26",
      "name": "Crepe proteico fino — banana e canela",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "frigideira larga; camada fina e flexível",
      "seasoning_text": "banana e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-14CCEF0B5D",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.3,
        "best_rating_count": 123,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING015",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Crepe proteico fino — banana e canela",
            "source_method_ids": [
              "PM-SRC-14CCEF0B5D",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela ou jarra",
              "batedor",
              "frigideira larga antiaderente",
              "concha pequena",
              "espátula",
              "tigela",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a massa adaptada até ficar totalmente lisa e homogênea."
              },
              {
                "order": 2,
                "instruction": "Quando a estrutura da massa permitir, deixar repousar antes da cocção; a fonte clássica repousa a massa por 30 min."
              },
              {
                "order": 3,
                "instruction": "Aquecer a frigideira em fogo médio e usar somente a gordura contabilizada, formando uma película muito fina."
              },
              {
                "order": 4,
                "instruction": "Colocar pouca massa e girar a frigideira para formar uma camada fina."
              },
              {
                "order": 5,
                "instruction": "Cozinhar o primeiro lado até dourar e soltar; virar e terminar rapidamente o segundo lado. A fonte usa cerca de 45 s no primeiro lado e 30 s no segundo."
              },
              {
                "order": 6,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 7,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 8,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 9,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "fonte: repouso 30 min; ~45 s no primeiro lado e ~30 s no segundo por crêpe",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "fogo médio",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "crêpe fino, flexível, levemente dourado e sem centro cru",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir farinha, leite, açúcar ou manteiga da fonte se não constarem na porção adaptada. O tempo deve ser encurtado se a massa adaptada for menor/mais proteica.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "frigideira larga; camada fina e flexível",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-14CCEF0B5D",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-B-SWEET-27": {
      "id": "NEW-B-SWEET-27",
      "name": "Crepe proteico fino — baunilha e canela",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "frigideira larga; camada fina e flexível",
      "seasoning_text": "baunilha e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-14CCEF0B5D",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.3,
        "best_rating_count": 123,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Crepe proteico fino — baunilha e canela",
            "source_method_ids": [
              "PM-SRC-14CCEF0B5D",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela ou jarra",
              "batedor",
              "frigideira larga antiaderente",
              "concha pequena",
              "espátula",
              "tigela",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a massa adaptada até ficar totalmente lisa e homogênea."
              },
              {
                "order": 2,
                "instruction": "Quando a estrutura da massa permitir, deixar repousar antes da cocção; a fonte clássica repousa a massa por 30 min."
              },
              {
                "order": 3,
                "instruction": "Aquecer a frigideira em fogo médio e usar somente a gordura contabilizada, formando uma película muito fina."
              },
              {
                "order": 4,
                "instruction": "Colocar pouca massa e girar a frigideira para formar uma camada fina."
              },
              {
                "order": 5,
                "instruction": "Cozinhar o primeiro lado até dourar e soltar; virar e terminar rapidamente o segundo lado. A fonte usa cerca de 45 s no primeiro lado e 30 s no segundo."
              },
              {
                "order": 6,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 7,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 8,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 9,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "fonte: repouso 30 min; ~45 s no primeiro lado e ~30 s no segundo por crêpe",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "fogo médio",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "crêpe fino, flexível, levemente dourado e sem centro cru",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir farinha, leite, açúcar ou manteiga da fonte se não constarem na porção adaptada. O tempo deve ser encurtado se a massa adaptada for menor/mais proteica.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "frigideira larga; camada fina e flexível",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-14CCEF0B5D",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-B-SWEET-28": {
      "id": "NEW-B-SWEET-28",
      "name": "Crepe proteico fino — cardamomo e baunilha",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "frigideira larga; camada fina e flexível",
      "seasoning_text": "cardamomo e baunilha",
      "seasoning_refs": [
        "T119"
      ],
      "source_ids": [
        "SRC-14CCEF0B5D",
        "SRC-BDEFB6DD8B"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.3,
        "best_rating_count": 123,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Crepe proteico fino — cardamomo e baunilha",
            "source_method_ids": [
              "PM-SRC-14CCEF0B5D",
              "PM-SRC-BDEFB6DD8B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela ou jarra",
              "batedor",
              "frigideira larga antiaderente",
              "concha pequena",
              "espátula",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a massa adaptada até ficar totalmente lisa e homogênea."
              },
              {
                "order": 2,
                "instruction": "Quando a estrutura da massa permitir, deixar repousar antes da cocção; a fonte clássica repousa a massa por 30 min."
              },
              {
                "order": 3,
                "instruction": "Aquecer a frigideira em fogo médio e usar somente a gordura contabilizada, formando uma película muito fina."
              },
              {
                "order": 4,
                "instruction": "Colocar pouca massa e girar a frigideira para formar uma camada fina."
              },
              {
                "order": 5,
                "instruction": "Cozinhar o primeiro lado até dourar e soltar; virar e terminar rapidamente o segundo lado. A fonte usa cerca de 45 s no primeiro lado e 30 s no segundo."
              },
              {
                "order": 6,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 7,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 8,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 9,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte: repouso 30 min; ~45 s no primeiro lado e ~30 s no segundo por crêpe",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "fogo médio",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "crêpe fino, flexível, levemente dourado e sem centro cru",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir farinha, leite, açúcar ou manteiga da fonte se não constarem na porção adaptada. O tempo deve ser encurtado se a massa adaptada for menor/mais proteica.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "frigideira larga; camada fina e flexível",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-14CCEF0B5D",
            "PM-SRC-BDEFB6DD8B"
          ]
        }
      }
    },
    "NEW-B-SWEET-29": {
      "id": "NEW-B-SWEET-29",
      "name": "Crepe proteico fino — limão e canela",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "frigideira larga; camada fina e flexível",
      "seasoning_text": "limão e canela",
      "seasoning_refs": [
        "T121"
      ],
      "source_ids": [
        "SRC-14CCEF0B5D",
        "SRC-2254C533D0"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.3,
        "best_rating_count": 123,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Crepe proteico fino — limão e canela",
            "source_method_ids": [
              "PM-SRC-14CCEF0B5D",
              "PM-SRC-2254C533D0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela ou jarra",
              "batedor",
              "frigideira larga antiaderente",
              "concha pequena",
              "espátula",
              "frigideira antiaderente larga",
              "concha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a massa adaptada até ficar totalmente lisa e homogênea."
              },
              {
                "order": 2,
                "instruction": "Quando a estrutura da massa permitir, deixar repousar antes da cocção; a fonte clássica repousa a massa por 30 min."
              },
              {
                "order": 3,
                "instruction": "Aquecer a frigideira em fogo médio e usar somente a gordura contabilizada, formando uma película muito fina."
              },
              {
                "order": 4,
                "instruction": "Colocar pouca massa e girar a frigideira para formar uma camada fina."
              },
              {
                "order": 5,
                "instruction": "Cozinhar o primeiro lado até dourar e soltar; virar e terminar rapidamente o segundo lado. A fonte usa cerca de 45 s no primeiro lado e 30 s no segundo."
              },
              {
                "order": 6,
                "instruction": "Misturar/bater a massa adaptada até ficar fluida e homogênea."
              },
              {
                "order": 7,
                "instruction": "Aquecer frigideira larga com película mínima da gordura prevista."
              },
              {
                "order": 8,
                "instruction": "Adicionar pouca massa e girar a frigideira para formar camada fina."
              },
              {
                "order": 9,
                "instruction": "Cozinhar até soltar das bordas, virar e terminar rapidamente o outro lado."
              }
            ],
            "source_time_reference": [
              "fonte: repouso 30 min; ~45 s no primeiro lado e ~30 s no segundo por crêpe",
              "crêpes cozinham rapidamente; usar aparência das bordas como guia"
            ],
            "source_temperature_reference": [
              "fogo médio"
            ],
            "texture_or_doneness_endpoint": [
              "crêpe fino, flexível, levemente dourado e sem centro cru",
              "fina, flexível, com leves pontos dourados"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir farinha, leite, açúcar ou manteiga da fonte se não constarem na porção adaptada. O tempo deve ser encurtado se a massa adaptada for menor/mais proteica.",
              "A massa é proteica/low-carb; não adicionar farinha/leite da fonte se ausentes.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "frigideira larga; camada fina e flexível",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-14CCEF0B5D",
            "PM-SRC-2254C533D0"
          ]
        }
      }
    },
    "NEW-B-SWEET-30": {
      "id": "NEW-B-SWEET-30",
      "name": "Crepe proteico fino — noz-moscada e baunilha",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "frigideira larga; camada fina e flexível",
      "seasoning_text": "noz-moscada e baunilha",
      "seasoning_refs": [
        "T114"
      ],
      "source_ids": [
        "SRC-14CCEF0B5D",
        "SRC-3E8E96B92A"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 32,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Crepe proteico fino — noz-moscada e baunilha",
            "source_method_ids": [
              "PM-SRC-14CCEF0B5D",
              "PM-SRC-3E8E96B92A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela ou jarra",
              "batedor",
              "frigideira larga antiaderente",
              "concha pequena",
              "espátula",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a massa adaptada até ficar totalmente lisa e homogênea."
              },
              {
                "order": 2,
                "instruction": "Quando a estrutura da massa permitir, deixar repousar antes da cocção; a fonte clássica repousa a massa por 30 min."
              },
              {
                "order": 3,
                "instruction": "Aquecer a frigideira em fogo médio e usar somente a gordura contabilizada, formando uma película muito fina."
              },
              {
                "order": 4,
                "instruction": "Colocar pouca massa e girar a frigideira para formar uma camada fina."
              },
              {
                "order": 5,
                "instruction": "Cozinhar o primeiro lado até dourar e soltar; virar e terminar rapidamente o segundo lado. A fonte usa cerca de 45 s no primeiro lado e 30 s no segundo."
              },
              {
                "order": 6,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 7,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 8,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 9,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte: repouso 30 min; ~45 s no primeiro lado e ~30 s no segundo por crêpe",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "fogo médio",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "crêpe fino, flexível, levemente dourado e sem centro cru",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir farinha, leite, açúcar ou manteiga da fonte se não constarem na porção adaptada. O tempo deve ser encurtado se a massa adaptada for menor/mais proteica.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "frigideira larga; camada fina e flexível",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-14CCEF0B5D",
            "PM-SRC-3E8E96B92A"
          ]
        }
      }
    },
    "NEW-B-SWEET-31": {
      "id": "NEW-B-SWEET-31",
      "name": "Mug cake proteico — baunilha e canela",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "micro-ondas em caneca; retirar ainda úmido no centro",
      "seasoning_text": "baunilha e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-AA7390D783",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.3,
        "best_rating_count": 10,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Mug cake proteico — baunilha e canela",
            "source_method_ids": [
              "PM-SRC-AA7390D783",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "caneca grande própria para micro-ondas",
              "garfo/colher",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Untar a caneca somente se houver gordura contabilizada."
              },
              {
                "order": 2,
                "instruction": "Misturar primeiro os líquidos/ovo e depois os componentes secos da versão adaptada até não haver bolsões."
              },
              {
                "order": 3,
                "instruction": "Cozinhar no micro-ondas em intervalos curtos, observando a expansão."
              },
              {
                "order": 4,
                "instruction": "Retirar ainda ligeiramente úmido no centro e descansar para terminar de firmar."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "fonte 750 W: 3 intervalos de 30 s + 2 min de descanso",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "micro-ondas alta potência na fonte",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "estrutura firme após descanso, sem ressecar",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "A massa adaptada é diferente da fonte; usar intervalos como referência e endpoint como controle.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "micro-ondas em caneca; retirar ainda úmido no centro",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AA7390D783",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-B-SWEET-32": {
      "id": "NEW-B-SWEET-32",
      "name": "Mug cake proteico — limão e baunilha",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "micro-ondas em caneca; retirar ainda úmido no centro",
      "seasoning_text": "limão e baunilha",
      "seasoning_refs": [
        "T111"
      ],
      "source_ids": [
        "SRC-AA7390D783",
        "SRC-3E8E96B92A"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 32,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Mug cake proteico — limão e baunilha",
            "source_method_ids": [
              "PM-SRC-AA7390D783",
              "PM-SRC-3E8E96B92A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "caneca grande própria para micro-ondas",
              "garfo/colher",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Untar a caneca somente se houver gordura contabilizada."
              },
              {
                "order": 2,
                "instruction": "Misturar primeiro os líquidos/ovo e depois os componentes secos da versão adaptada até não haver bolsões."
              },
              {
                "order": 3,
                "instruction": "Cozinhar no micro-ondas em intervalos curtos, observando a expansão."
              },
              {
                "order": 4,
                "instruction": "Retirar ainda ligeiramente úmido no centro e descansar para terminar de firmar."
              },
              {
                "order": 5,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 6,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 7,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 8,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte 750 W: 3 intervalos de 30 s + 2 min de descanso",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "micro-ondas alta potência na fonte",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "estrutura firme após descanso, sem ressecar",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "A massa adaptada é diferente da fonte; usar intervalos como referência e endpoint como controle.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "micro-ondas em caneca; retirar ainda úmido no centro",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AA7390D783",
            "PM-SRC-3E8E96B92A"
          ]
        }
      }
    },
    "NEW-B-SWEET-33": {
      "id": "NEW-B-SWEET-33",
      "name": "Mug cake proteico — café e canela",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "micro-ondas em caneca; retirar ainda úmido no centro",
      "seasoning_text": "café e canela",
      "seasoning_refs": [
        "T112"
      ],
      "source_ids": [
        "SRC-AA7390D783",
        "SRC-0D69818314"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.3,
        "best_rating_count": 10,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Mug cake proteico — café e canela",
            "source_method_ids": [
              "PM-SRC-AA7390D783",
              "PM-SRC-0D69818314"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "caneca grande própria para micro-ondas",
              "garfo/colher",
              "forma/ramequim/molde indicado",
              "forno ou air fryer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Untar a caneca somente se houver gordura contabilizada."
              },
              {
                "order": 2,
                "instruction": "Misturar primeiro os líquidos/ovo e depois os componentes secos da versão adaptada até não haver bolsões."
              },
              {
                "order": 3,
                "instruction": "Cozinhar no micro-ondas em intervalos curtos, observando a expansão."
              },
              {
                "order": 4,
                "instruction": "Retirar ainda ligeiramente úmido no centro e descansar para terminar de firmar."
              },
              {
                "order": 5,
                "instruction": "Misturar os ingredientes líquidos e secos da versão adaptada até homogêneo, evitando bater em excesso depois que a estrutura estiver formada."
              },
              {
                "order": 6,
                "instruction": "Distribuir no molde indicado na ficha."
              },
              {
                "order": 7,
                "instruction": "Assar/air fry até as bordas firmarem e o centro passar de líquido para elástico/firme."
              },
              {
                "order": 8,
                "instruction": "Descansar antes de desenformar para estabilizar a estrutura."
              }
            ],
            "source_time_reference": [
              "fonte 750 W: 3 intervalos de 30 s + 2 min de descanso",
              "tempo depende do molde e da composição adaptada"
            ],
            "source_temperature_reference": [
              "micro-ondas alta potência na fonte",
              "forno/air fryer moderado; usar endpoint"
            ],
            "texture_or_doneness_endpoint": [
              "estrutura firme após descanso, sem ressecar",
              "bordas firmes, centro cozido e estrutura que se mantém ao esfriar"
            ],
            "adaptation_guardrails": [
              "A massa adaptada é diferente da fonte; usar intervalos como referência e endpoint como controle.",
              "Não importar farinhas/adoçantes/gorduras da fonte que não constem na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "micro-ondas em caneca; retirar ainda úmido no centro",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AA7390D783",
            "PM-SRC-0D69818314"
          ]
        }
      }
    },
    "NEW-B-SWEET-34": {
      "id": "NEW-B-SWEET-34",
      "name": "Mug cake proteico — morango e baunilha",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "micro-ondas em caneca; retirar ainda úmido no centro",
      "seasoning_text": "morango e baunilha",
      "seasoning_refs": [
        "T113"
      ],
      "source_ids": [
        "SRC-AA7390D783",
        "SRC-E6C55B7F2D"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.3,
        "best_rating_count": 10,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING013",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Mug cake proteico — morango e baunilha",
            "source_method_ids": [
              "PM-SRC-AA7390D783",
              "PM-SRC-E6C55B7F2D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "caneca grande própria para micro-ondas",
              "garfo/colher",
              "liquidificador/processador",
              "recipiente de freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Untar a caneca somente se houver gordura contabilizada."
              },
              {
                "order": 2,
                "instruction": "Misturar primeiro os líquidos/ovo e depois os componentes secos da versão adaptada até não haver bolsões."
              },
              {
                "order": 3,
                "instruction": "Cozinhar no micro-ondas em intervalos curtos, observando a expansão."
              },
              {
                "order": 4,
                "instruction": "Retirar ainda ligeiramente úmido no centro e descansar para terminar de firmar."
              },
              {
                "order": 5,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 6,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 7,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 8,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              }
            ],
            "source_time_reference": [
              "fonte 750 W: 3 intervalos de 30 s + 2 min de descanso",
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes"
            ],
            "source_temperature_reference": [
              "micro-ondas alta potência na fonte",
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "estrutura firme após descanso, sem ressecar",
              "cremoso/congelado com cristais pequenos"
            ],
            "adaptation_guardrails": [
              "A massa adaptada é diferente da fonte; usar intervalos como referência e endpoint como controle.",
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "micro-ondas em caneca; retirar ainda úmido no centro",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AA7390D783",
            "PM-SRC-E6C55B7F2D"
          ]
        }
      }
    },
    "NEW-B-SWEET-35": {
      "id": "NEW-B-SWEET-35",
      "name": "Mug cake proteico — pumpkin spice",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "micro-ondas em caneca; retirar ainda úmido no centro",
      "seasoning_text": "pumpkin spice",
      "seasoning_refs": [
        "T117"
      ],
      "source_ids": [
        "SRC-AA7390D783",
        "SRC-AD6F9E9285"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.3,
        "best_rating_count": 10,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Mug cake proteico — pumpkin spice",
            "source_method_ids": [
              "PM-SRC-AA7390D783",
              "PM-SRC-AD6F9E9285"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "caneca grande própria para micro-ondas",
              "garfo/colher",
              "tigelas",
              "batedor",
              "frigideira antiaderente",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Untar a caneca somente se houver gordura contabilizada."
              },
              {
                "order": 2,
                "instruction": "Misturar primeiro os líquidos/ovo e depois os componentes secos da versão adaptada até não haver bolsões."
              },
              {
                "order": 3,
                "instruction": "Cozinhar no micro-ondas em intervalos curtos, observando a expansão."
              },
              {
                "order": 4,
                "instruction": "Retirar ainda ligeiramente úmido no centro e descansar para terminar de firmar."
              },
              {
                "order": 5,
                "instruction": "Misturar a base líquida autorizada com o purê de abóbora e a gema quando presentes."
              },
              {
                "order": 6,
                "instruction": "Formar uma massa homogênea, sem grumos."
              },
              {
                "order": 7,
                "instruction": "Bater a clara até firme e incorporar delicadamente para dar leveza quando a versão adaptada contiver clara separada."
              },
              {
                "order": 8,
                "instruction": "Cozinhar em frigideira antiaderente e virar somente quando muitas bolhas surgirem e a superfície começar a secar."
              },
              {
                "order": 9,
                "instruction": "Terminar o segundo lado sem escurecer excessivamente."
              }
            ],
            "source_time_reference": [
              "fonte 750 W: 3 intervalos de 30 s + 2 min de descanso",
              "fonte: guiado visualmente por bolhas e secagem da superfície"
            ],
            "source_temperature_reference": [
              "micro-ondas alta potência na fonte",
              "fogo médio a médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "estrutura firme após descanso, sem ressecar",
              "panqueca leve, firme e cozida no centro, sem base queimada"
            ],
            "adaptation_guardrails": [
              "A massa adaptada é diferente da fonte; usar intervalos como referência e endpoint como controle.",
              "Farinha e leite da fonte não entram se não estiverem na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "micro-ondas em caneca; retirar ainda úmido no centro",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AA7390D783",
            "PM-SRC-AD6F9E9285"
          ]
        }
      }
    },
    "NEW-B-SWEET-36": {
      "id": "NEW-B-SWEET-36",
      "name": "Mug cake proteico — gengibre e canela",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "micro-ondas em caneca; retirar ainda úmido no centro",
      "seasoning_text": "gengibre e canela",
      "seasoning_refs": [
        "T120"
      ],
      "source_ids": [
        "SRC-AA7390D783",
        "SRC-0D69818314"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.3,
        "best_rating_count": 10,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Mug cake proteico — gengibre e canela",
            "source_method_ids": [
              "PM-SRC-AA7390D783",
              "PM-SRC-0D69818314"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "caneca grande própria para micro-ondas",
              "garfo/colher",
              "forma/ramequim/molde indicado",
              "forno ou air fryer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Untar a caneca somente se houver gordura contabilizada."
              },
              {
                "order": 2,
                "instruction": "Misturar primeiro os líquidos/ovo e depois os componentes secos da versão adaptada até não haver bolsões."
              },
              {
                "order": 3,
                "instruction": "Cozinhar no micro-ondas em intervalos curtos, observando a expansão."
              },
              {
                "order": 4,
                "instruction": "Retirar ainda ligeiramente úmido no centro e descansar para terminar de firmar."
              },
              {
                "order": 5,
                "instruction": "Misturar os ingredientes líquidos e secos da versão adaptada até homogêneo, evitando bater em excesso depois que a estrutura estiver formada."
              },
              {
                "order": 6,
                "instruction": "Distribuir no molde indicado na ficha."
              },
              {
                "order": 7,
                "instruction": "Assar/air fry até as bordas firmarem e o centro passar de líquido para elástico/firme."
              },
              {
                "order": 8,
                "instruction": "Descansar antes de desenformar para estabilizar a estrutura."
              }
            ],
            "source_time_reference": [
              "fonte 750 W: 3 intervalos de 30 s + 2 min de descanso",
              "tempo depende do molde e da composição adaptada"
            ],
            "source_temperature_reference": [
              "micro-ondas alta potência na fonte",
              "forno/air fryer moderado; usar endpoint"
            ],
            "texture_or_doneness_endpoint": [
              "estrutura firme após descanso, sem ressecar",
              "bordas firmes, centro cozido e estrutura que se mantém ao esfriar"
            ],
            "adaptation_guardrails": [
              "A massa adaptada é diferente da fonte; usar intervalos como referência e endpoint como controle.",
              "Não importar farinhas/adoçantes/gorduras da fonte que não constem na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "micro-ondas em caneca; retirar ainda úmido no centro",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AA7390D783",
            "PM-SRC-0D69818314"
          ]
        }
      }
    },
    "NEW-B-SWEET-37": {
      "id": "NEW-B-SWEET-37",
      "name": "Bolo proteico de baunilha low-carb — baunilha e canela",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "assado em ramequim/forma pequena",
      "seasoning_text": "baunilha e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-C40AB88FCF",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 2,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Bolo proteico de baunilha low-carb — baunilha e canela",
            "source_method_ids": [
              "PM-SRC-C40AB88FCF",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "peneira/tecido para iogurte",
              "batedeira ou fouet",
              "tigelas",
              "forma",
              "forno",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Quando houver cobertura de iogurte, escorrer o iogurte para ganhar corpo; a fonte usa pelo menos 2 h."
              },
              {
                "order": 2,
                "instruction": "Separar ovos e bater as claras até picos firmes."
              },
              {
                "order": 3,
                "instruction": "Misturar gemas e demais ingredientes autorizados da massa até homogêneo."
              },
              {
                "order": 4,
                "instruction": "Incorporar as claras delicadamente para preservar aeração e transferir para a forma."
              },
              {
                "order": 5,
                "instruction": "Assar seguindo a geometria da versão adaptada e retirar quando o centro estiver assado sem ressecar; resfriar antes de montar."
              },
              {
                "order": 6,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 7,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 8,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 9,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "fonte: iogurte ≥2 h; assamento em dois estágios conforme a receita original",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "fonte usa forno em estágios; adaptar ao tamanho da porção",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "bolo firme, aerado e sem massa líquida no centro",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir farinhas de amêndoa/sementes, adoçantes ou cobertura quando não autorizados. Como a nossa massa pode ser muito menor, o endpoint prevalece sobre o tempo da fonte.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "assado em ramequim/forma pequena",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-C40AB88FCF",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-B-SWEET-38": {
      "id": "NEW-B-SWEET-38",
      "name": "Bolo proteico de baunilha low-carb — limão e baunilha",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "assado em ramequim/forma pequena",
      "seasoning_text": "limão e baunilha",
      "seasoning_refs": [
        "T111"
      ],
      "source_ids": [
        "SRC-C40AB88FCF",
        "SRC-3E8E96B92A"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 2,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Bolo proteico de baunilha low-carb — limão e baunilha",
            "source_method_ids": [
              "PM-SRC-C40AB88FCF",
              "PM-SRC-3E8E96B92A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "peneira/tecido para iogurte",
              "batedeira ou fouet",
              "tigelas",
              "forma",
              "forno",
              "ramequim/forma",
              "assadeira funda para banho-maria"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Quando houver cobertura de iogurte, escorrer o iogurte para ganhar corpo; a fonte usa pelo menos 2 h."
              },
              {
                "order": 2,
                "instruction": "Separar ovos e bater as claras até picos firmes."
              },
              {
                "order": 3,
                "instruction": "Misturar gemas e demais ingredientes autorizados da massa até homogêneo."
              },
              {
                "order": 4,
                "instruction": "Incorporar as claras delicadamente para preservar aeração e transferir para a forma."
              },
              {
                "order": 5,
                "instruction": "Assar seguindo a geometria da versão adaptada e retirar quando o centro estiver assado sem ressecar; resfriar antes de montar."
              },
              {
                "order": 6,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 7,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 8,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 9,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte: iogurte ≥2 h; assamento em dois estágios conforme a receita original",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "fonte usa forno em estágios; adaptar ao tamanho da porção",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "bolo firme, aerado e sem massa líquida no centro",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir farinhas de amêndoa/sementes, adoçantes ou cobertura quando não autorizados. Como a nossa massa pode ser muito menor, o endpoint prevalece sobre o tempo da fonte.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "assado em ramequim/forma pequena",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-C40AB88FCF",
            "PM-SRC-3E8E96B92A"
          ]
        }
      }
    },
    "NEW-B-SWEET-39": {
      "id": "NEW-B-SWEET-39",
      "name": "Bolo proteico de baunilha low-carb — morango e baunilha",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "assado em ramequim/forma pequena",
      "seasoning_text": "morango e baunilha",
      "seasoning_refs": [
        "T113"
      ],
      "source_ids": [
        "SRC-C40AB88FCF",
        "SRC-E6C55B7F2D"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 2,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING013",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Bolo proteico de baunilha low-carb — morango e baunilha",
            "source_method_ids": [
              "PM-SRC-C40AB88FCF",
              "PM-SRC-E6C55B7F2D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "peneira/tecido para iogurte",
              "batedeira ou fouet",
              "tigelas",
              "forma",
              "forno",
              "liquidificador/processador",
              "recipiente de freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Quando houver cobertura de iogurte, escorrer o iogurte para ganhar corpo; a fonte usa pelo menos 2 h."
              },
              {
                "order": 2,
                "instruction": "Separar ovos e bater as claras até picos firmes."
              },
              {
                "order": 3,
                "instruction": "Misturar gemas e demais ingredientes autorizados da massa até homogêneo."
              },
              {
                "order": 4,
                "instruction": "Incorporar as claras delicadamente para preservar aeração e transferir para a forma."
              },
              {
                "order": 5,
                "instruction": "Assar seguindo a geometria da versão adaptada e retirar quando o centro estiver assado sem ressecar; resfriar antes de montar."
              },
              {
                "order": 6,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 7,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 8,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 9,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              }
            ],
            "source_time_reference": [
              "fonte: iogurte ≥2 h; assamento em dois estágios conforme a receita original",
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes"
            ],
            "source_temperature_reference": [
              "fonte usa forno em estágios; adaptar ao tamanho da porção",
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "bolo firme, aerado e sem massa líquida no centro",
              "cremoso/congelado com cristais pequenos"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir farinhas de amêndoa/sementes, adoçantes ou cobertura quando não autorizados. Como a nossa massa pode ser muito menor, o endpoint prevalece sobre o tempo da fonte.",
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "assado em ramequim/forma pequena",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-C40AB88FCF",
            "PM-SRC-E6C55B7F2D"
          ]
        }
      }
    },
    "NEW-B-SWEET-40": {
      "id": "NEW-B-SWEET-40",
      "name": "Bolo proteico de baunilha low-carb — pumpkin spice",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "assado em ramequim/forma pequena",
      "seasoning_text": "pumpkin spice",
      "seasoning_refs": [
        "T117"
      ],
      "source_ids": [
        "SRC-C40AB88FCF",
        "SRC-AD6F9E9285"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 2,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Bolo proteico de baunilha low-carb — pumpkin spice",
            "source_method_ids": [
              "PM-SRC-C40AB88FCF",
              "PM-SRC-AD6F9E9285"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "peneira/tecido para iogurte",
              "batedeira ou fouet",
              "tigelas",
              "forma",
              "forno",
              "batedor",
              "frigideira antiaderente",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Quando houver cobertura de iogurte, escorrer o iogurte para ganhar corpo; a fonte usa pelo menos 2 h."
              },
              {
                "order": 2,
                "instruction": "Separar ovos e bater as claras até picos firmes."
              },
              {
                "order": 3,
                "instruction": "Misturar gemas e demais ingredientes autorizados da massa até homogêneo."
              },
              {
                "order": 4,
                "instruction": "Incorporar as claras delicadamente para preservar aeração e transferir para a forma."
              },
              {
                "order": 5,
                "instruction": "Assar seguindo a geometria da versão adaptada e retirar quando o centro estiver assado sem ressecar; resfriar antes de montar."
              },
              {
                "order": 6,
                "instruction": "Misturar a base líquida autorizada com o purê de abóbora e a gema quando presentes."
              },
              {
                "order": 7,
                "instruction": "Formar uma massa homogênea, sem grumos."
              },
              {
                "order": 8,
                "instruction": "Bater a clara até firme e incorporar delicadamente para dar leveza quando a versão adaptada contiver clara separada."
              },
              {
                "order": 9,
                "instruction": "Cozinhar em frigideira antiaderente e virar somente quando muitas bolhas surgirem e a superfície começar a secar."
              },
              {
                "order": 10,
                "instruction": "Terminar o segundo lado sem escurecer excessivamente."
              }
            ],
            "source_time_reference": [
              "fonte: iogurte ≥2 h; assamento em dois estágios conforme a receita original",
              "fonte: guiado visualmente por bolhas e secagem da superfície"
            ],
            "source_temperature_reference": [
              "fonte usa forno em estágios; adaptar ao tamanho da porção",
              "fogo médio a médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "bolo firme, aerado e sem massa líquida no centro",
              "panqueca leve, firme e cozida no centro, sem base queimada"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir farinhas de amêndoa/sementes, adoçantes ou cobertura quando não autorizados. Como a nossa massa pode ser muito menor, o endpoint prevalece sobre o tempo da fonte.",
              "Farinha e leite da fonte não entram se não estiverem na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "assado em ramequim/forma pequena",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-C40AB88FCF",
            "PM-SRC-AD6F9E9285"
          ]
        }
      }
    },
    "NEW-B-SWEET-41": {
      "id": "NEW-B-SWEET-41",
      "name": "Bolo proteico de baunilha low-carb — laranja e canela",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "assado em ramequim/forma pequena",
      "seasoning_text": "laranja e canela",
      "seasoning_refs": [
        "T118"
      ],
      "source_ids": [
        "SRC-C40AB88FCF",
        "SRC-BDEFB6DD8B"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 5.0,
        "best_rating_count": 2,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Bolo proteico de baunilha low-carb — laranja e canela",
            "source_method_ids": [
              "PM-SRC-C40AB88FCF",
              "PM-SRC-BDEFB6DD8B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "peneira/tecido para iogurte",
              "batedeira ou fouet",
              "tigelas",
              "forma",
              "forno",
              "ramequim/forma",
              "assadeira funda para banho-maria"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Quando houver cobertura de iogurte, escorrer o iogurte para ganhar corpo; a fonte usa pelo menos 2 h."
              },
              {
                "order": 2,
                "instruction": "Separar ovos e bater as claras até picos firmes."
              },
              {
                "order": 3,
                "instruction": "Misturar gemas e demais ingredientes autorizados da massa até homogêneo."
              },
              {
                "order": 4,
                "instruction": "Incorporar as claras delicadamente para preservar aeração e transferir para a forma."
              },
              {
                "order": 5,
                "instruction": "Assar seguindo a geometria da versão adaptada e retirar quando o centro estiver assado sem ressecar; resfriar antes de montar."
              },
              {
                "order": 6,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 7,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 8,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 9,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte: iogurte ≥2 h; assamento em dois estágios conforme a receita original",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "fonte usa forno em estágios; adaptar ao tamanho da porção",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "bolo firme, aerado e sem massa líquida no centro",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir farinhas de amêndoa/sementes, adoçantes ou cobertura quando não autorizados. Como a nossa massa pode ser muito menor, o endpoint prevalece sobre o tempo da fonte.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "assado em ramequim/forma pequena",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-C40AB88FCF",
            "PM-SRC-BDEFB6DD8B"
          ]
        }
      }
    },
    "NEW-B-SWEET-42": {
      "id": "NEW-B-SWEET-42",
      "name": "Donut proteico assado — baunilha e canela",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "molde de donut; forno/air fryer, sem imersão",
      "seasoning_text": "baunilha e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-A119C27396",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 3,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Donut proteico assado — baunilha e canela",
            "source_method_ids": [
              "PM-SRC-A119C27396",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigelas",
              "batedor/espátula",
              "forma de doughnut",
              "forno",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar separadamente secos e líquidos autorizados e então combinar apenas até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Distribuir nos moldes sem preencher completamente; a fonte usa cerca de 3/4 da altura."
              },
              {
                "order": 3,
                "instruction": "Assar inicialmente em forno mais quente para firmar a estrutura; a fonte usa 200°C/180°C ventilado por 12 min."
              },
              {
                "order": 4,
                "instruction": "Reduzir o forno e terminar a cocção; a fonte usa 180°C/160°C ventilado por mais 5–10 min."
              },
              {
                "order": 5,
                "instruction": "Esfriar antes de desenformar para evitar quebra."
              },
              {
                "order": 6,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 7,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 8,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 9,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "fonte: 12 min + 5–10 min",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "200°C/180°C ventilado, depois 180°C/160°C ventilado",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "estrutura firme, assada e estável para desenformar após esfriar",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir farinhas, adoçantes ou coberturas da fonte que não estejam na adaptação. A massa adaptada pode exigir tempo menor.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "molde de donut; forno/air fryer, sem imersão",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A119C27396",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-B-SWEET-43": {
      "id": "NEW-B-SWEET-43",
      "name": "Donut proteico assado — limão e baunilha",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "molde de donut; forno/air fryer, sem imersão",
      "seasoning_text": "limão e baunilha",
      "seasoning_refs": [
        "T111"
      ],
      "source_ids": [
        "SRC-A119C27396",
        "SRC-3E8E96B92A"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 3,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Donut proteico assado — limão e baunilha",
            "source_method_ids": [
              "PM-SRC-A119C27396",
              "PM-SRC-3E8E96B92A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigelas",
              "batedor/espátula",
              "forma de doughnut",
              "forno",
              "ramequim/forma",
              "assadeira funda para banho-maria"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar separadamente secos e líquidos autorizados e então combinar apenas até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Distribuir nos moldes sem preencher completamente; a fonte usa cerca de 3/4 da altura."
              },
              {
                "order": 3,
                "instruction": "Assar inicialmente em forno mais quente para firmar a estrutura; a fonte usa 200°C/180°C ventilado por 12 min."
              },
              {
                "order": 4,
                "instruction": "Reduzir o forno e terminar a cocção; a fonte usa 180°C/160°C ventilado por mais 5–10 min."
              },
              {
                "order": 5,
                "instruction": "Esfriar antes de desenformar para evitar quebra."
              },
              {
                "order": 6,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 7,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 8,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 9,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte: 12 min + 5–10 min",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "200°C/180°C ventilado, depois 180°C/160°C ventilado",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "estrutura firme, assada e estável para desenformar após esfriar",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir farinhas, adoçantes ou coberturas da fonte que não estejam na adaptação. A massa adaptada pode exigir tempo menor.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "molde de donut; forno/air fryer, sem imersão",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A119C27396",
            "PM-SRC-3E8E96B92A"
          ]
        }
      }
    },
    "NEW-B-SWEET-44": {
      "id": "NEW-B-SWEET-44",
      "name": "Donut proteico assado — morango e baunilha",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "molde de donut; forno/air fryer, sem imersão",
      "seasoning_text": "morango e baunilha",
      "seasoning_refs": [
        "T113"
      ],
      "source_ids": [
        "SRC-A119C27396",
        "SRC-E6C55B7F2D"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 3,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING013",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Donut proteico assado — morango e baunilha",
            "source_method_ids": [
              "PM-SRC-A119C27396",
              "PM-SRC-E6C55B7F2D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigelas",
              "batedor/espátula",
              "forma de doughnut",
              "forno",
              "liquidificador/processador",
              "recipiente de freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar separadamente secos e líquidos autorizados e então combinar apenas até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Distribuir nos moldes sem preencher completamente; a fonte usa cerca de 3/4 da altura."
              },
              {
                "order": 3,
                "instruction": "Assar inicialmente em forno mais quente para firmar a estrutura; a fonte usa 200°C/180°C ventilado por 12 min."
              },
              {
                "order": 4,
                "instruction": "Reduzir o forno e terminar a cocção; a fonte usa 180°C/160°C ventilado por mais 5–10 min."
              },
              {
                "order": 5,
                "instruction": "Esfriar antes de desenformar para evitar quebra."
              },
              {
                "order": 6,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 7,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 8,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 9,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              }
            ],
            "source_time_reference": [
              "fonte: 12 min + 5–10 min",
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes"
            ],
            "source_temperature_reference": [
              "200°C/180°C ventilado, depois 180°C/160°C ventilado",
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "estrutura firme, assada e estável para desenformar após esfriar",
              "cremoso/congelado com cristais pequenos"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir farinhas, adoçantes ou coberturas da fonte que não estejam na adaptação. A massa adaptada pode exigir tempo menor.",
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "molde de donut; forno/air fryer, sem imersão",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A119C27396",
            "PM-SRC-E6C55B7F2D"
          ]
        }
      }
    },
    "NEW-B-SWEET-45": {
      "id": "NEW-B-SWEET-45",
      "name": "Donut proteico assado — pumpkin spice",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "molde de donut; forno/air fryer, sem imersão",
      "seasoning_text": "pumpkin spice",
      "seasoning_refs": [
        "T117"
      ],
      "source_ids": [
        "SRC-A119C27396",
        "SRC-AD6F9E9285"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 5.0,
        "best_rating_count": 3,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Donut proteico assado — pumpkin spice",
            "source_method_ids": [
              "PM-SRC-A119C27396",
              "PM-SRC-AD6F9E9285"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigelas",
              "batedor/espátula",
              "forma de doughnut",
              "forno",
              "batedor",
              "frigideira antiaderente",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar separadamente secos e líquidos autorizados e então combinar apenas até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Distribuir nos moldes sem preencher completamente; a fonte usa cerca de 3/4 da altura."
              },
              {
                "order": 3,
                "instruction": "Assar inicialmente em forno mais quente para firmar a estrutura; a fonte usa 200°C/180°C ventilado por 12 min."
              },
              {
                "order": 4,
                "instruction": "Reduzir o forno e terminar a cocção; a fonte usa 180°C/160°C ventilado por mais 5–10 min."
              },
              {
                "order": 5,
                "instruction": "Esfriar antes de desenformar para evitar quebra."
              },
              {
                "order": 6,
                "instruction": "Misturar a base líquida autorizada com o purê de abóbora e a gema quando presentes."
              },
              {
                "order": 7,
                "instruction": "Formar uma massa homogênea, sem grumos."
              },
              {
                "order": 8,
                "instruction": "Bater a clara até firme e incorporar delicadamente para dar leveza quando a versão adaptada contiver clara separada."
              },
              {
                "order": 9,
                "instruction": "Cozinhar em frigideira antiaderente e virar somente quando muitas bolhas surgirem e a superfície começar a secar."
              },
              {
                "order": 10,
                "instruction": "Terminar o segundo lado sem escurecer excessivamente."
              }
            ],
            "source_time_reference": [
              "fonte: 12 min + 5–10 min",
              "fonte: guiado visualmente por bolhas e secagem da superfície"
            ],
            "source_temperature_reference": [
              "200°C/180°C ventilado, depois 180°C/160°C ventilado",
              "fogo médio a médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "estrutura firme, assada e estável para desenformar após esfriar",
              "panqueca leve, firme e cozida no centro, sem base queimada"
            ],
            "adaptation_guardrails": [
              "Não reintroduzir farinhas, adoçantes ou coberturas da fonte que não estejam na adaptação. A massa adaptada pode exigir tempo menor.",
              "Farinha e leite da fonte não entram se não estiverem na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "molde de donut; forno/air fryer, sem imersão",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A119C27396",
            "PM-SRC-AD6F9E9285"
          ]
        }
      }
    },
    "NEW-B-SWEET-46": {
      "id": "NEW-B-SWEET-46",
      "name": "Custard proteico de ovos — noz-moscada e baunilha",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "banho-maria/forno baixo; textura cremosa",
      "seasoning_text": "noz-moscada e baunilha",
      "seasoning_refs": [
        "T114"
      ],
      "source_ids": [
        "SRC-3E8E96B92A"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 32,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Custard proteico de ovos — noz-moscada e baunilha",
            "source_method_ids": [
              "PM-SRC-3E8E96B92A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 2,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 3,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 4,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "banho-maria/forno baixo; textura cremosa",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-3E8E96B92A"
          ]
        }
      }
    },
    "NEW-B-SWEET-47": {
      "id": "NEW-B-SWEET-47",
      "name": "Custard proteico de ovos — baunilha e canela",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "banho-maria/forno baixo; textura cremosa",
      "seasoning_text": "baunilha e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-3E8E96B92A",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 32,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Custard proteico de ovos — baunilha e canela",
            "source_method_ids": [
              "PM-SRC-3E8E96B92A",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 2,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 3,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 4,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "fonte: 45–50 min",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "150°C / 130°C ventilado",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "recém-firme com leve tremor central",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "banho-maria/forno baixo; textura cremosa",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-3E8E96B92A",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-B-SWEET-48": {
      "id": "NEW-B-SWEET-48",
      "name": "Custard proteico de ovos — limão e baunilha",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "banho-maria/forno baixo; textura cremosa",
      "seasoning_text": "limão e baunilha",
      "seasoning_refs": [
        "T111"
      ],
      "source_ids": [
        "SRC-3E8E96B92A"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 32,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Custard proteico de ovos — limão e baunilha",
            "source_method_ids": [
              "PM-SRC-3E8E96B92A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 2,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 3,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 4,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "banho-maria/forno baixo; textura cremosa",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-3E8E96B92A"
          ]
        }
      }
    },
    "NEW-B-SWEET-49": {
      "id": "NEW-B-SWEET-49",
      "name": "Custard proteico de ovos — laranja e canela",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "banho-maria/forno baixo; textura cremosa",
      "seasoning_text": "laranja e canela",
      "seasoning_refs": [
        "T118"
      ],
      "source_ids": [
        "SRC-3E8E96B92A",
        "SRC-BDEFB6DD8B"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 32,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Custard proteico de ovos — laranja e canela",
            "source_method_ids": [
              "PM-SRC-3E8E96B92A",
              "PM-SRC-BDEFB6DD8B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 2,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 3,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 4,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "banho-maria/forno baixo; textura cremosa",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-3E8E96B92A",
            "PM-SRC-BDEFB6DD8B"
          ]
        }
      }
    },
    "NEW-B-SWEET-50": {
      "id": "NEW-B-SWEET-50",
      "name": "Custard proteico de ovos — cardamomo e baunilha",
      "category": "breakfast_sweet",
      "origin": "generated_v3",
      "method_overview": "banho-maria/forno baixo; textura cremosa",
      "seasoning_text": "cardamomo e baunilha",
      "seasoning_refs": [
        "T119"
      ],
      "source_ids": [
        "SRC-3E8E96B92A",
        "SRC-BDEFB6DD8B"
      ],
      "adaptation_notes": "Receita-fonte usada como técnica-base. Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais. Amêndoas são moídas quando entram na massa. Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 32,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING027",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Custard proteico de ovos — cardamomo e baunilha",
            "source_method_ids": [
              "PM-SRC-3E8E96B92A",
              "PM-SRC-BDEFB6DD8B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 2,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 3,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 4,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Receita-fonte usada como técnica-base.",
          "Açúcares e coberturas ricas em carboidrato foram omitidos; whey zero lactose e claras substituem parte dos ingredientes proteicos/estruturais.",
          "Amêndoas são moídas quando entram na massa.",
          "Adoçante sem calorias é opcional; óleo é medido e contabilizado quando necessário.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "banho-maria/forno baixo; textura cremosa",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-3E8E96B92A",
            "PM-SRC-BDEFB6DD8B"
          ]
        }
      }
    },
    "NEW-SD-01": {
      "id": "NEW-SD-01",
      "name": "Frozen yogurt proteico — morango e baunilha",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "bater e congelar; mexer durante congelamento",
      "seasoning_text": "morango e baunilha",
      "seasoning_refs": [
        "T113"
      ],
      "source_ids": [
        "SRC-E6C55B7F2D"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 3.2,
        "best_rating_count": 5,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frozen yogurt proteico — morango e baunilha",
            "source_method_ids": [
              "PM-SRC-E6C55B7F2D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "liquidificador/processador",
              "recipiente de freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 2,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 3,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 4,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              }
            ],
            "source_time_reference": [
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes"
            ],
            "source_temperature_reference": [
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "cremoso/congelado com cristais pequenos"
            ],
            "adaptation_guardrails": [
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bater e congelar; mexer durante congelamento",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E6C55B7F2D"
          ]
        }
      }
    },
    "NEW-SD-02": {
      "id": "NEW-SD-02",
      "name": "Frozen yogurt proteico — morango e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "bater e congelar; mexer durante congelamento",
      "seasoning_text": "morango e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-E6C55B7F2D",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frozen yogurt proteico — morango e canela",
            "source_method_ids": [
              "PM-SRC-E6C55B7F2D",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "liquidificador/processador",
              "recipiente de freezer",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 2,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 3,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 4,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "freezer",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "cremoso/congelado com cristais pequenos",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bater e congelar; mexer durante congelamento",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E6C55B7F2D",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-03": {
      "id": "NEW-SD-03",
      "name": "Frozen yogurt proteico — banana e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "bater e congelar; mexer durante congelamento",
      "seasoning_text": "banana e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-E6C55B7F2D",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING015",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frozen yogurt proteico — banana e canela",
            "source_method_ids": [
              "PM-SRC-E6C55B7F2D",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "liquidificador/processador",
              "recipiente de freezer",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 2,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 3,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 4,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "freezer",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "cremoso/congelado com cristais pequenos",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bater e congelar; mexer durante congelamento",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E6C55B7F2D",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-04": {
      "id": "NEW-SD-04",
      "name": "Frozen yogurt proteico — limão e baunilha",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "bater e congelar; mexer durante congelamento",
      "seasoning_text": "limão e baunilha",
      "seasoning_refs": [
        "T111"
      ],
      "source_ids": [
        "SRC-E6C55B7F2D",
        "SRC-3E8E96B92A"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 32,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frozen yogurt proteico — limão e baunilha",
            "source_method_ids": [
              "PM-SRC-E6C55B7F2D",
              "PM-SRC-3E8E96B92A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "liquidificador/processador",
              "recipiente de freezer",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 2,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 3,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 4,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              },
              {
                "order": 5,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 6,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 7,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 8,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "freezer",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "cremoso/congelado com cristais pequenos",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bater e congelar; mexer durante congelamento",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E6C55B7F2D",
            "PM-SRC-3E8E96B92A"
          ]
        }
      }
    },
    "NEW-SD-05": {
      "id": "NEW-SD-05",
      "name": "Frozen yogurt proteico — laranja e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "bater e congelar; mexer durante congelamento",
      "seasoning_text": "laranja e canela",
      "seasoning_refs": [
        "T118"
      ],
      "source_ids": [
        "SRC-E6C55B7F2D",
        "SRC-BDEFB6DD8B"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 3.2,
        "best_rating_count": 5,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frozen yogurt proteico — laranja e canela",
            "source_method_ids": [
              "PM-SRC-E6C55B7F2D",
              "PM-SRC-BDEFB6DD8B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "liquidificador/processador",
              "recipiente de freezer",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 2,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 3,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 4,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              },
              {
                "order": 5,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 6,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 7,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 8,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "freezer",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "cremoso/congelado com cristais pequenos",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bater e congelar; mexer durante congelamento",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E6C55B7F2D",
            "PM-SRC-BDEFB6DD8B"
          ]
        }
      }
    },
    "NEW-SD-06": {
      "id": "NEW-SD-06",
      "name": "Frozen yogurt proteico — mamão e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "bater e congelar; mexer durante congelamento",
      "seasoning_text": "mamão e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-E6C55B7F2D",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING014",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frozen yogurt proteico — mamão e canela",
            "source_method_ids": [
              "PM-SRC-E6C55B7F2D",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "liquidificador/processador",
              "recipiente de freezer",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 2,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 3,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 4,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "freezer",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "cremoso/congelado com cristais pequenos",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bater e congelar; mexer durante congelamento",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E6C55B7F2D",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-07": {
      "id": "NEW-SD-07",
      "name": "Frozen yogurt instantâneo — morango e baunilha",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "bater fruta congelada e creme proteico até textura de sorvete",
      "seasoning_text": "morango e baunilha",
      "seasoning_refs": [
        "T113"
      ],
      "source_ids": [
        "SRC-7A6D11BAC7",
        "SRC-E6C55B7F2D"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 76,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frozen yogurt instantâneo — morango e baunilha",
            "source_method_ids": [
              "PM-SRC-7A6D11BAC7",
              "PM-SRC-E6C55B7F2D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador potente",
              "liquidificador/processador",
              "recipiente de freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Usar a fruta congelada e o iogurte zero lactose bem frio."
              },
              {
                "order": 2,
                "instruction": "Processar junto com whey/ingredientes autorizados somente até formar textura lisa de sorvete."
              },
              {
                "order": 3,
                "instruction": "Consumir imediatamente para preservar a textura."
              },
              {
                "order": 4,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 5,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 7,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 20 s de processamento",
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes"
            ],
            "source_temperature_reference": [
              "sem cocção; ingredientes congelados/frios",
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "textura lisa de sorvete soft, sem derreter",
              "cremoso/congelado com cristais pequenos"
            ],
            "adaptation_guardrails": [
              "Mel/agave não entra salvo se listado.",
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bater fruta congelada e creme proteico até textura de sorvete",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-7A6D11BAC7",
            "PM-SRC-E6C55B7F2D"
          ]
        }
      }
    },
    "NEW-SD-08": {
      "id": "NEW-SD-08",
      "name": "Frozen yogurt instantâneo — banana e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "bater fruta congelada e creme proteico até textura de sorvete",
      "seasoning_text": "banana e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-7A6D11BAC7",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 76,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING015",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frozen yogurt instantâneo — banana e canela",
            "source_method_ids": [
              "PM-SRC-7A6D11BAC7",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador potente",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Usar a fruta congelada e o iogurte zero lactose bem frio."
              },
              {
                "order": 2,
                "instruction": "Processar junto com whey/ingredientes autorizados somente até formar textura lisa de sorvete."
              },
              {
                "order": 3,
                "instruction": "Consumir imediatamente para preservar a textura."
              },
              {
                "order": 4,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 5,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 6,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 7,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 20 s de processamento",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "sem cocção; ingredientes congelados/frios",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "textura lisa de sorvete soft, sem derreter",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Mel/agave não entra salvo se listado.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bater fruta congelada e creme proteico até textura de sorvete",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-7A6D11BAC7",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-09": {
      "id": "NEW-SD-09",
      "name": "Frozen yogurt instantâneo — mamão e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "bater fruta congelada e creme proteico até textura de sorvete",
      "seasoning_text": "mamão e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-7A6D11BAC7",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 76,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING014",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frozen yogurt instantâneo — mamão e canela",
            "source_method_ids": [
              "PM-SRC-7A6D11BAC7",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador potente",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Usar a fruta congelada e o iogurte zero lactose bem frio."
              },
              {
                "order": 2,
                "instruction": "Processar junto com whey/ingredientes autorizados somente até formar textura lisa de sorvete."
              },
              {
                "order": 3,
                "instruction": "Consumir imediatamente para preservar a textura."
              },
              {
                "order": 4,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 5,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 6,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 7,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 20 s de processamento",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "sem cocção; ingredientes congelados/frios",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "textura lisa de sorvete soft, sem derreter",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Mel/agave não entra salvo se listado.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bater fruta congelada e creme proteico até textura de sorvete",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-7A6D11BAC7",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-10": {
      "id": "NEW-SD-10",
      "name": "Frozen yogurt instantâneo — limão e baunilha",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "bater fruta congelada e creme proteico até textura de sorvete",
      "seasoning_text": "limão e baunilha",
      "seasoning_refs": [
        "T111"
      ],
      "source_ids": [
        "SRC-7A6D11BAC7",
        "SRC-3E8E96B92A"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 76,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frozen yogurt instantâneo — limão e baunilha",
            "source_method_ids": [
              "PM-SRC-7A6D11BAC7",
              "PM-SRC-3E8E96B92A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador potente",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Usar a fruta congelada e o iogurte zero lactose bem frio."
              },
              {
                "order": 2,
                "instruction": "Processar junto com whey/ingredientes autorizados somente até formar textura lisa de sorvete."
              },
              {
                "order": 3,
                "instruction": "Consumir imediatamente para preservar a textura."
              },
              {
                "order": 4,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 5,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 6,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 7,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 20 s de processamento",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "sem cocção; ingredientes congelados/frios",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "textura lisa de sorvete soft, sem derreter",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Mel/agave não entra salvo se listado.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bater fruta congelada e creme proteico até textura de sorvete",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-7A6D11BAC7",
            "PM-SRC-3E8E96B92A"
          ]
        }
      }
    },
    "NEW-SD-11": {
      "id": "NEW-SD-11",
      "name": "Frozen yogurt instantâneo — morango e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "bater fruta congelada e creme proteico até textura de sorvete",
      "seasoning_text": "morango e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-7A6D11BAC7",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 76,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frozen yogurt instantâneo — morango e canela",
            "source_method_ids": [
              "PM-SRC-7A6D11BAC7",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador potente",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Usar a fruta congelada e o iogurte zero lactose bem frio."
              },
              {
                "order": 2,
                "instruction": "Processar junto com whey/ingredientes autorizados somente até formar textura lisa de sorvete."
              },
              {
                "order": 3,
                "instruction": "Consumir imediatamente para preservar a textura."
              },
              {
                "order": 4,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 5,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 6,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 7,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 20 s de processamento",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "sem cocção; ingredientes congelados/frios",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "textura lisa de sorvete soft, sem derreter",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Mel/agave não entra salvo se listado.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bater fruta congelada e creme proteico até textura de sorvete",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-7A6D11BAC7",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-12": {
      "id": "NEW-SD-12",
      "name": "Parfait proteico — morango e baunilha",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "montar camadas; fruta em pedaços para contraste",
      "seasoning_text": "morango e baunilha",
      "seasoning_refs": [
        "T113"
      ],
      "source_ids": [
        "SRC-AB34D47A8D",
        "SRC-E6C55B7F2D"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 3.2,
        "best_rating_count": 5,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Parfait proteico — morango e baunilha",
            "source_method_ids": [
              "PM-SRC-AB34D47A8D",
              "PM-SRC-E6C55B7F2D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "liquidificador/processador",
              "recipiente de freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 6,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 7,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 8,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "cremoso/congelado com cristais pequenos"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "montar camadas; fruta em pedaços para contraste",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AB34D47A8D",
            "PM-SRC-E6C55B7F2D"
          ]
        }
      }
    },
    "NEW-SD-13": {
      "id": "NEW-SD-13",
      "name": "Parfait proteico — morango e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "montar camadas; fruta em pedaços para contraste",
      "seasoning_text": "morango e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-AB34D47A8D",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Parfait proteico — morango e canela",
            "source_method_ids": [
              "PM-SRC-AB34D47A8D",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "montar camadas; fruta em pedaços para contraste",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AB34D47A8D",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-14": {
      "id": "NEW-SD-14",
      "name": "Parfait proteico — mamão e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "montar camadas; fruta em pedaços para contraste",
      "seasoning_text": "mamão e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-AB34D47A8D",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING014",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Parfait proteico — mamão e canela",
            "source_method_ids": [
              "PM-SRC-AB34D47A8D",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "montar camadas; fruta em pedaços para contraste",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AB34D47A8D",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-15": {
      "id": "NEW-SD-15",
      "name": "Parfait proteico — banana e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "montar camadas; fruta em pedaços para contraste",
      "seasoning_text": "banana e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-AB34D47A8D",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING015",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Parfait proteico — banana e canela",
            "source_method_ids": [
              "PM-SRC-AB34D47A8D",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "montar camadas; fruta em pedaços para contraste",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AB34D47A8D",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-16": {
      "id": "NEW-SD-16",
      "name": "Parfait proteico — laranja e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "montar camadas; fruta em pedaços para contraste",
      "seasoning_text": "laranja e canela",
      "seasoning_refs": [
        "T118"
      ],
      "source_ids": [
        "SRC-AB34D47A8D",
        "SRC-BDEFB6DD8B"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 0,
        "best_rating": null,
        "best_rating_count": null,
        "rating_status": "no_numeric_rating_on_referenced_source"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Parfait proteico — laranja e canela",
            "source_method_ids": [
              "PM-SRC-AB34D47A8D",
              "PM-SRC-BDEFB6DD8B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 6,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 7,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 8,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "montar camadas; fruta em pedaços para contraste",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AB34D47A8D",
            "PM-SRC-BDEFB6DD8B"
          ]
        }
      }
    },
    "NEW-SD-17": {
      "id": "NEW-SD-17",
      "name": "Parfait proteico — limão e baunilha",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "montar camadas; fruta em pedaços para contraste",
      "seasoning_text": "limão e baunilha",
      "seasoning_refs": [
        "T111"
      ],
      "source_ids": [
        "SRC-AB34D47A8D",
        "SRC-3E8E96B92A"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 32,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Parfait proteico — limão e baunilha",
            "source_method_ids": [
              "PM-SRC-AB34D47A8D",
              "PM-SRC-3E8E96B92A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 6,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 7,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 8,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "montar camadas; fruta em pedaços para contraste",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AB34D47A8D",
            "PM-SRC-3E8E96B92A"
          ]
        }
      }
    },
    "NEW-SD-18": {
      "id": "NEW-SD-18",
      "name": "Sundae proteico — morango e baunilha",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "creme de iogurte/whey com fruta em swirl",
      "seasoning_text": "morango e baunilha",
      "seasoning_refs": [
        "T113"
      ],
      "source_ids": [
        "SRC-AB34D47A8D",
        "SRC-E6C55B7F2D"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 3.2,
        "best_rating_count": 5,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Sundae proteico — morango e baunilha",
            "source_method_ids": [
              "PM-SRC-AB34D47A8D",
              "PM-SRC-E6C55B7F2D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "liquidificador/processador",
              "recipiente de freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 6,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 7,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 8,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "cremoso/congelado com cristais pequenos"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "creme de iogurte/whey com fruta em swirl",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AB34D47A8D",
            "PM-SRC-E6C55B7F2D"
          ]
        }
      }
    },
    "NEW-SD-19": {
      "id": "NEW-SD-19",
      "name": "Sundae proteico — banana e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "creme de iogurte/whey com fruta em swirl",
      "seasoning_text": "banana e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-AB34D47A8D",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING015",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Sundae proteico — banana e canela",
            "source_method_ids": [
              "PM-SRC-AB34D47A8D",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "creme de iogurte/whey com fruta em swirl",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AB34D47A8D",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-20": {
      "id": "NEW-SD-20",
      "name": "Sundae proteico — mamão e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "creme de iogurte/whey com fruta em swirl",
      "seasoning_text": "mamão e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-AB34D47A8D",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING014",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Sundae proteico — mamão e canela",
            "source_method_ids": [
              "PM-SRC-AB34D47A8D",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "creme de iogurte/whey com fruta em swirl",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AB34D47A8D",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-21": {
      "id": "NEW-SD-21",
      "name": "Sundae proteico — café e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "creme de iogurte/whey com fruta em swirl",
      "seasoning_text": "café e canela",
      "seasoning_refs": [
        "T112"
      ],
      "source_ids": [
        "SRC-AB34D47A8D",
        "SRC-0D69818314"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 0,
        "best_rating": null,
        "best_rating_count": null,
        "rating_status": "no_numeric_rating_on_referenced_source"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Sundae proteico — café e canela",
            "source_method_ids": [
              "PM-SRC-AB34D47A8D",
              "PM-SRC-0D69818314"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "copo/pote",
              "colher",
              "forma/ramequim/molde indicado",
              "forno ou air fryer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar os ingredientes líquidos e secos da versão adaptada até homogêneo, evitando bater em excesso depois que a estrutura estiver formada."
              },
              {
                "order": 6,
                "instruction": "Distribuir no molde indicado na ficha."
              },
              {
                "order": 7,
                "instruction": "Assar/air fry até as bordas firmarem e o centro passar de líquido para elástico/firme."
              },
              {
                "order": 8,
                "instruction": "Descansar antes de desenformar para estabilizar a estrutura."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "tempo depende do molde e da composição adaptada"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "forno/air fryer moderado; usar endpoint"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "bordas firmes, centro cozido e estrutura que se mantém ao esfriar"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "Não importar farinhas/adoçantes/gorduras da fonte que não constem na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "creme de iogurte/whey com fruta em swirl",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 2,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AB34D47A8D",
            "PM-SRC-0D69818314"
          ]
        }
      }
    },
    "NEW-SD-22": {
      "id": "NEW-SD-22",
      "name": "Sundae proteico — limão e baunilha",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "creme de iogurte/whey com fruta em swirl",
      "seasoning_text": "limão e baunilha",
      "seasoning_refs": [
        "T111"
      ],
      "source_ids": [
        "SRC-AB34D47A8D",
        "SRC-3E8E96B92A"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 32,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Sundae proteico — limão e baunilha",
            "source_method_ids": [
              "PM-SRC-AB34D47A8D",
              "PM-SRC-3E8E96B92A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 6,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 7,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 8,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [
          "Preservar a montagem em camadas/swirl; não homogeneizar antes de servir."
        ],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "creme de iogurte/whey com fruta em swirl",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AB34D47A8D",
            "PM-SRC-3E8E96B92A"
          ]
        }
      }
    },
    "NEW-SD-23": {
      "id": "NEW-SD-23",
      "name": "Picolé proteico — morango e baunilha",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "congelar em moldes individuais",
      "seasoning_text": "morango e baunilha",
      "seasoning_refs": [
        "T113"
      ],
      "source_ids": [
        "SRC-1916763C6B",
        "SRC-E6C55B7F2D"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 3.2,
        "best_rating_count": 5,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Picolé proteico — morango e baunilha",
            "source_method_ids": [
              "PM-SRC-1916763C6B",
              "PM-SRC-E6C55B7F2D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "liquidificador/processador",
              "recipiente de freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 6,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 7,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 8,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "cremoso/congelado com cristais pequenos"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "congelar em moldes individuais",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-1916763C6B",
            "PM-SRC-E6C55B7F2D"
          ]
        }
      }
    },
    "NEW-SD-24": {
      "id": "NEW-SD-24",
      "name": "Picolé proteico — banana e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "congelar em moldes individuais",
      "seasoning_text": "banana e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-1916763C6B",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING015",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Picolé proteico — banana e canela",
            "source_method_ids": [
              "PM-SRC-1916763C6B",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "congelar em moldes individuais",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-1916763C6B",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-25": {
      "id": "NEW-SD-25",
      "name": "Picolé proteico — mamão e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "congelar em moldes individuais",
      "seasoning_text": "mamão e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-1916763C6B",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING014",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Picolé proteico — mamão e canela",
            "source_method_ids": [
              "PM-SRC-1916763C6B",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "congelar em moldes individuais",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-1916763C6B",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-26": {
      "id": "NEW-SD-26",
      "name": "Picolé proteico — limão e baunilha",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "congelar em moldes individuais",
      "seasoning_text": "limão e baunilha",
      "seasoning_refs": [
        "T111"
      ],
      "source_ids": [
        "SRC-1916763C6B",
        "SRC-3E8E96B92A"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 32,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Picolé proteico — limão e baunilha",
            "source_method_ids": [
              "PM-SRC-1916763C6B",
              "PM-SRC-3E8E96B92A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 6,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 7,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 8,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "congelar em moldes individuais",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-1916763C6B",
            "PM-SRC-3E8E96B92A"
          ]
        }
      }
    },
    "NEW-SD-27": {
      "id": "NEW-SD-27",
      "name": "Picolé proteico — laranja e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "congelar em moldes individuais",
      "seasoning_text": "laranja e canela",
      "seasoning_refs": [
        "T118"
      ],
      "source_ids": [
        "SRC-1916763C6B",
        "SRC-BDEFB6DD8B"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 0,
        "best_rating": null,
        "best_rating_count": null,
        "rating_status": "no_numeric_rating_on_referenced_source"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Picolé proteico — laranja e canela",
            "source_method_ids": [
              "PM-SRC-1916763C6B",
              "PM-SRC-BDEFB6DD8B"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 6,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 7,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 8,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "congelar em moldes individuais",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-1916763C6B",
            "PM-SRC-BDEFB6DD8B"
          ]
        }
      }
    },
    "NEW-SD-28": {
      "id": "NEW-SD-28",
      "name": "Yogurt bark proteico — morango e baunilha",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "espalhar camada fina e congelar; quebrar em placas",
      "seasoning_text": "morango e baunilha",
      "seasoning_refs": [
        "T113"
      ],
      "source_ids": [
        "SRC-1916763C6B",
        "SRC-E6C55B7F2D"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 3.2,
        "best_rating_count": 5,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Yogurt bark proteico — morango e baunilha",
            "source_method_ids": [
              "PM-SRC-1916763C6B",
              "PM-SRC-E6C55B7F2D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "liquidificador/processador",
              "recipiente de freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 6,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 7,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 8,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "cremoso/congelado com cristais pequenos"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "espalhar camada fina e congelar; quebrar em placas",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-1916763C6B",
            "PM-SRC-E6C55B7F2D"
          ]
        }
      }
    },
    "NEW-SD-29": {
      "id": "NEW-SD-29",
      "name": "Yogurt bark proteico — morango e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "espalhar camada fina e congelar; quebrar em placas",
      "seasoning_text": "morango e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-1916763C6B",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Yogurt bark proteico — morango e canela",
            "source_method_ids": [
              "PM-SRC-1916763C6B",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "espalhar camada fina e congelar; quebrar em placas",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-1916763C6B",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-30": {
      "id": "NEW-SD-30",
      "name": "Yogurt bark proteico — banana e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "espalhar camada fina e congelar; quebrar em placas",
      "seasoning_text": "banana e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-1916763C6B",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING015",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Yogurt bark proteico — banana e canela",
            "source_method_ids": [
              "PM-SRC-1916763C6B",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "espalhar camada fina e congelar; quebrar em placas",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-1916763C6B",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-31": {
      "id": "NEW-SD-31",
      "name": "Yogurt bark proteico — limão e baunilha",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "espalhar camada fina e congelar; quebrar em placas",
      "seasoning_text": "limão e baunilha",
      "seasoning_refs": [
        "T111"
      ],
      "source_ids": [
        "SRC-1916763C6B",
        "SRC-3E8E96B92A"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 32,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Yogurt bark proteico — limão e baunilha",
            "source_method_ids": [
              "PM-SRC-1916763C6B",
              "PM-SRC-3E8E96B92A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 6,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 7,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 8,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "espalhar camada fina e congelar; quebrar em placas",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-1916763C6B",
            "PM-SRC-3E8E96B92A"
          ]
        }
      }
    },
    "NEW-SD-32": {
      "id": "NEW-SD-32",
      "name": "Bites congelados de iogurte — morango e baunilha",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "porções pequenas congeladas em molde",
      "seasoning_text": "morango e baunilha",
      "seasoning_refs": [
        "T113"
      ],
      "source_ids": [
        "SRC-1916763C6B",
        "SRC-E6C55B7F2D"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 3.2,
        "best_rating_count": 5,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Bites congelados de iogurte — morango e baunilha",
            "source_method_ids": [
              "PM-SRC-1916763C6B",
              "PM-SRC-E6C55B7F2D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "liquidificador/processador",
              "recipiente de freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 6,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 7,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 8,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "cremoso/congelado com cristais pequenos"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "porções pequenas congeladas em molde",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-1916763C6B",
            "PM-SRC-E6C55B7F2D"
          ]
        }
      }
    },
    "NEW-SD-33": {
      "id": "NEW-SD-33",
      "name": "Bites congelados de iogurte — mamão e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "porções pequenas congeladas em molde",
      "seasoning_text": "mamão e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-1916763C6B",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING014",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Bites congelados de iogurte — mamão e canela",
            "source_method_ids": [
              "PM-SRC-1916763C6B",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "porções pequenas congeladas em molde",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-1916763C6B",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-34": {
      "id": "NEW-SD-34",
      "name": "Bites congelados de iogurte — banana e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "porções pequenas congeladas em molde",
      "seasoning_text": "banana e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-1916763C6B",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING015",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Bites congelados de iogurte — banana e canela",
            "source_method_ids": [
              "PM-SRC-1916763C6B",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "porções pequenas congeladas em molde",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-1916763C6B",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-35": {
      "id": "NEW-SD-35",
      "name": "Bites congelados de iogurte — morango e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "porções pequenas congeladas em molde",
      "seasoning_text": "morango e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-1916763C6B",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Bites congelados de iogurte — morango e canela",
            "source_method_ids": [
              "PM-SRC-1916763C6B",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "porções pequenas congeladas em molde",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-1916763C6B",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-36": {
      "id": "NEW-SD-36",
      "name": "Mousse rápida de iogurte e whey — morango e baunilha",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "bater/incorporar ar e gelar",
      "seasoning_text": "morango e baunilha",
      "seasoning_refs": [
        "T113"
      ],
      "source_ids": [
        "SRC-AB34D47A8D",
        "SRC-E6C55B7F2D"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 3.2,
        "best_rating_count": 5,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Mousse rápida de iogurte e whey — morango e baunilha",
            "source_method_ids": [
              "PM-SRC-AB34D47A8D",
              "PM-SRC-E6C55B7F2D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "liquidificador/processador",
              "recipiente de freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 6,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 7,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 8,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "cremoso/congelado com cristais pequenos"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bater/incorporar ar e gelar",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AB34D47A8D",
            "PM-SRC-E6C55B7F2D"
          ]
        }
      }
    },
    "NEW-SD-37": {
      "id": "NEW-SD-37",
      "name": "Mousse rápida de iogurte e whey — mamão e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "bater/incorporar ar e gelar",
      "seasoning_text": "mamão e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-AB34D47A8D",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING014",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Mousse rápida de iogurte e whey — mamão e canela",
            "source_method_ids": [
              "PM-SRC-AB34D47A8D",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bater/incorporar ar e gelar",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AB34D47A8D",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-38": {
      "id": "NEW-SD-38",
      "name": "Mousse rápida de iogurte e whey — banana e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "bater/incorporar ar e gelar",
      "seasoning_text": "banana e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-AB34D47A8D",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING015",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Mousse rápida de iogurte e whey — banana e canela",
            "source_method_ids": [
              "PM-SRC-AB34D47A8D",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bater/incorporar ar e gelar",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AB34D47A8D",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-39": {
      "id": "NEW-SD-39",
      "name": "Mousse rápida de iogurte e whey — limão e baunilha",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "bater/incorporar ar e gelar",
      "seasoning_text": "limão e baunilha",
      "seasoning_refs": [
        "T111"
      ],
      "source_ids": [
        "SRC-AB34D47A8D",
        "SRC-3E8E96B92A"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 32,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Mousse rápida de iogurte e whey — limão e baunilha",
            "source_method_ids": [
              "PM-SRC-AB34D47A8D",
              "PM-SRC-3E8E96B92A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 6,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 7,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 8,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bater/incorporar ar e gelar",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AB34D47A8D",
            "PM-SRC-3E8E96B92A"
          ]
        }
      }
    },
    "NEW-SD-40": {
      "id": "NEW-SD-40",
      "name": "Mousse rápida de iogurte e whey — café e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "bater/incorporar ar e gelar",
      "seasoning_text": "café e canela",
      "seasoning_refs": [
        "T112"
      ],
      "source_ids": [
        "SRC-AB34D47A8D",
        "SRC-0D69818314"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 0,
        "best_rating": null,
        "best_rating_count": null,
        "rating_status": "no_numeric_rating_on_referenced_source"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Mousse rápida de iogurte e whey — café e canela",
            "source_method_ids": [
              "PM-SRC-AB34D47A8D",
              "PM-SRC-0D69818314"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "copo/pote",
              "colher",
              "forma/ramequim/molde indicado",
              "forno ou air fryer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar os ingredientes líquidos e secos da versão adaptada até homogêneo, evitando bater em excesso depois que a estrutura estiver formada."
              },
              {
                "order": 6,
                "instruction": "Distribuir no molde indicado na ficha."
              },
              {
                "order": 7,
                "instruction": "Assar/air fry até as bordas firmarem e o centro passar de líquido para elástico/firme."
              },
              {
                "order": 8,
                "instruction": "Descansar antes de desenformar para estabilizar a estrutura."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "tempo depende do molde e da composição adaptada"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "forno/air fryer moderado; usar endpoint"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "bordas firmes, centro cozido e estrutura que se mantém ao esfriar"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "Não importar farinhas/adoçantes/gorduras da fonte que não constem na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bater/incorporar ar e gelar",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 2,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AB34D47A8D",
            "PM-SRC-0D69818314"
          ]
        }
      }
    },
    "NEW-SD-41": {
      "id": "NEW-SD-41",
      "name": "Creme proteico gelado — morango e baunilha",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "misturar até creme espesso e resfriar",
      "seasoning_text": "morango e baunilha",
      "seasoning_refs": [
        "T113"
      ],
      "source_ids": [
        "SRC-AB34D47A8D",
        "SRC-E6C55B7F2D"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 3.2,
        "best_rating_count": 5,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Creme proteico gelado — morango e baunilha",
            "source_method_ids": [
              "PM-SRC-AB34D47A8D",
              "PM-SRC-E6C55B7F2D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "liquidificador/processador",
              "recipiente de freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 6,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 7,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 8,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "cremoso/congelado com cristais pequenos"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "misturar até creme espesso e resfriar",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AB34D47A8D",
            "PM-SRC-E6C55B7F2D"
          ]
        }
      }
    },
    "NEW-SD-42": {
      "id": "NEW-SD-42",
      "name": "Creme proteico gelado — morango e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "misturar até creme espesso e resfriar",
      "seasoning_text": "morango e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-AB34D47A8D",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Creme proteico gelado — morango e canela",
            "source_method_ids": [
              "PM-SRC-AB34D47A8D",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "misturar até creme espesso e resfriar",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AB34D47A8D",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-43": {
      "id": "NEW-SD-43",
      "name": "Creme proteico gelado — mamão e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "misturar até creme espesso e resfriar",
      "seasoning_text": "mamão e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-AB34D47A8D",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING014",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Creme proteico gelado — mamão e canela",
            "source_method_ids": [
              "PM-SRC-AB34D47A8D",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 7,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 8,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "misturar até creme espesso e resfriar",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AB34D47A8D",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-44": {
      "id": "NEW-SD-44",
      "name": "Creme proteico gelado — limão e baunilha",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "misturar até creme espesso e resfriar",
      "seasoning_text": "limão e baunilha",
      "seasoning_refs": [
        "T111"
      ],
      "source_ids": [
        "SRC-AB34D47A8D",
        "SRC-3E8E96B92A"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 32,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Creme proteico gelado — limão e baunilha",
            "source_method_ids": [
              "PM-SRC-AB34D47A8D",
              "PM-SRC-3E8E96B92A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "copo/pote",
              "colher",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 6,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 7,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 8,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "misturar até creme espesso e resfriar",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 1,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AB34D47A8D",
            "PM-SRC-3E8E96B92A"
          ]
        }
      }
    },
    "NEW-SD-45": {
      "id": "NEW-SD-45",
      "name": "Creme proteico gelado — café e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "misturar até creme espesso e resfriar",
      "seasoning_text": "café e canela",
      "seasoning_refs": [
        "T112"
      ],
      "source_ids": [
        "SRC-AB34D47A8D",
        "SRC-0D69818314"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 0,
        "best_rating": null,
        "best_rating_count": null,
        "rating_status": "no_numeric_rating_on_referenced_source"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Creme proteico gelado — café e canela",
            "source_method_ids": [
              "PM-SRC-AB34D47A8D",
              "PM-SRC-0D69818314"
            ],
            "grounding_level": "source_family_or_existing_overview",
            "equipment": [
              "copo/pote",
              "colher",
              "forma/ramequim/molde indicado",
              "forno ou air fryer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte zero lactose e whey até homogêneo."
              },
              {
                "order": 2,
                "instruction": "Preparar fruta em purê, macerada ou cubos conforme o nome da receita."
              },
              {
                "order": 3,
                "instruction": "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver."
              },
              {
                "order": 4,
                "instruction": "Manter refrigerado."
              },
              {
                "order": 5,
                "instruction": "Misturar os ingredientes líquidos e secos da versão adaptada até homogêneo, evitando bater em excesso depois que a estrutura estiver formada."
              },
              {
                "order": 6,
                "instruction": "Distribuir no molde indicado na ficha."
              },
              {
                "order": 7,
                "instruction": "Assar/air fry até as bordas firmarem e o centro passar de líquido para elástico/firme."
              },
              {
                "order": 8,
                "instruction": "Descansar antes de desenformar para estabilizar a estrutura."
              }
            ],
            "source_time_reference": [
              "montagem fria; sem cocção",
              "tempo depende do molde e da composição adaptada"
            ],
            "source_temperature_reference": [
              "refrigerado",
              "forno/air fryer moderado; usar endpoint"
            ],
            "texture_or_doneness_endpoint": [
              "creme espesso, camadas definidas e crocante seco",
              "bordas firmes, centro cozido e estrutura que se mantém ao esfriar"
            ],
            "adaptation_guardrails": [
              "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados.",
              "Não importar farinhas/adoçantes/gorduras da fonte que não constem na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "misturar até creme espesso e resfriar",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 0,
          "source_family_or_overview_sources": 2,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AB34D47A8D",
            "PM-SRC-0D69818314"
          ]
        }
      }
    },
    "NEW-SD-46": {
      "id": "NEW-SD-46",
      "name": "Smoothie proteico espesso — morango e baunilha",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "bater com gelo e pouca fruta",
      "seasoning_text": "morango e baunilha",
      "seasoning_refs": [
        "T113"
      ],
      "source_ids": [
        "SRC-7A6D11BAC7",
        "SRC-E6C55B7F2D"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 76,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Smoothie proteico espesso — morango e baunilha",
            "source_method_ids": [
              "PM-SRC-7A6D11BAC7",
              "PM-SRC-E6C55B7F2D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador potente",
              "liquidificador/processador",
              "recipiente de freezer"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Usar a fruta congelada e o iogurte zero lactose bem frio."
              },
              {
                "order": 2,
                "instruction": "Processar junto com whey/ingredientes autorizados somente até formar textura lisa de sorvete."
              },
              {
                "order": 3,
                "instruction": "Consumir imediatamente para preservar a textura."
              },
              {
                "order": 4,
                "instruction": "Processar a fruta até purê ou textura desejada."
              },
              {
                "order": 5,
                "instruction": "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo."
              },
              {
                "order": 6,
                "instruction": "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais."
              },
              {
                "order": 7,
                "instruction": "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 20 s de processamento",
              "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes"
            ],
            "source_temperature_reference": [
              "sem cocção; ingredientes congelados/frios",
              "freezer"
            ],
            "texture_or_doneness_endpoint": [
              "textura lisa de sorvete soft, sem derreter",
              "cremoso/congelado com cristais pequenos"
            ],
            "adaptation_guardrails": [
              "Mel/agave não entra salvo se listado.",
              "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bater com gelo e pouca fruta",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-7A6D11BAC7",
            "PM-SRC-E6C55B7F2D"
          ]
        }
      }
    },
    "NEW-SD-47": {
      "id": "NEW-SD-47",
      "name": "Smoothie proteico espesso — banana e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "bater com gelo e pouca fruta",
      "seasoning_text": "banana e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-7A6D11BAC7",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 76,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING015",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Smoothie proteico espesso — banana e canela",
            "source_method_ids": [
              "PM-SRC-7A6D11BAC7",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador potente",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Usar a fruta congelada e o iogurte zero lactose bem frio."
              },
              {
                "order": 2,
                "instruction": "Processar junto com whey/ingredientes autorizados somente até formar textura lisa de sorvete."
              },
              {
                "order": 3,
                "instruction": "Consumir imediatamente para preservar a textura."
              },
              {
                "order": 4,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 5,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 6,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 7,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 20 s de processamento",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "sem cocção; ingredientes congelados/frios",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "textura lisa de sorvete soft, sem derreter",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Mel/agave não entra salvo se listado.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bater com gelo e pouca fruta",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-7A6D11BAC7",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-48": {
      "id": "NEW-SD-48",
      "name": "Smoothie proteico espesso — mamão e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "bater com gelo e pouca fruta",
      "seasoning_text": "mamão e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-7A6D11BAC7",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 76,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING014",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Smoothie proteico espesso — mamão e canela",
            "source_method_ids": [
              "PM-SRC-7A6D11BAC7",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador potente",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Usar a fruta congelada e o iogurte zero lactose bem frio."
              },
              {
                "order": 2,
                "instruction": "Processar junto com whey/ingredientes autorizados somente até formar textura lisa de sorvete."
              },
              {
                "order": 3,
                "instruction": "Consumir imediatamente para preservar a textura."
              },
              {
                "order": 4,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 5,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 6,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 7,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 20 s de processamento",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "sem cocção; ingredientes congelados/frios",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "textura lisa de sorvete soft, sem derreter",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Mel/agave não entra salvo se listado.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bater com gelo e pouca fruta",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-7A6D11BAC7",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SD-49": {
      "id": "NEW-SD-49",
      "name": "Smoothie proteico espesso — limão e baunilha",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "bater com gelo e pouca fruta",
      "seasoning_text": "limão e baunilha",
      "seasoning_refs": [
        "T111"
      ],
      "source_ids": [
        "SRC-7A6D11BAC7",
        "SRC-3E8E96B92A"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 76,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Smoothie proteico espesso — limão e baunilha",
            "source_method_ids": [
              "PM-SRC-7A6D11BAC7",
              "PM-SRC-3E8E96B92A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador potente",
              "ramequim/forma",
              "assadeira funda para banho-maria",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Usar a fruta congelada e o iogurte zero lactose bem frio."
              },
              {
                "order": 2,
                "instruction": "Processar junto com whey/ingredientes autorizados somente até formar textura lisa de sorvete."
              },
              {
                "order": 3,
                "instruction": "Consumir imediatamente para preservar a textura."
              },
              {
                "order": 4,
                "instruction": "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado."
              },
              {
                "order": 5,
                "instruction": "Transferir para ramequim/forma."
              },
              {
                "order": 6,
                "instruction": "Colocar em banho-maria com água quente subindo parcialmente pelas laterais."
              },
              {
                "order": 7,
                "instruction": "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 20 s de processamento",
              "fonte: 45–50 min"
            ],
            "source_temperature_reference": [
              "sem cocção; ingredientes congelados/frios",
              "150°C / 130°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "textura lisa de sorvete soft, sem derreter",
              "recém-firme com leve tremor central"
            ],
            "adaptation_guardrails": [
              "Mel/agave não entra salvo se listado.",
              "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bater com gelo e pouca fruta",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-7A6D11BAC7",
            "PM-SRC-3E8E96B92A"
          ]
        }
      }
    },
    "NEW-SD-50": {
      "id": "NEW-SD-50",
      "name": "Smoothie proteico espesso — morango e canela",
      "category": "afternoon_snack_sweet",
      "origin": "generated_v3",
      "method_overview": "bater com gelo e pouca fruta",
      "seasoning_text": "morango e canela",
      "seasoning_refs": [
        "T110"
      ],
      "source_ids": [
        "SRC-7A6D11BAC7",
        "SRC-63E09E4CC0"
      ],
      "adaptation_notes": "Açúcares adicionados e leite condensado das referências foram omitidos. Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 2,
        "rated_source_count": 2,
        "best_rating": 4.7,
        "best_rating_count": 76,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING013",
            "ING027"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING011",
            "ING012"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING027",
              "raw_state": "Amêndoa natural crua, sem casca",
              "yield_factor": 0.97,
              "yield_source_id": "SRC-YIELD-USDA-ALMOND",
              "quality": "low_estimate",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Smoothie proteico espesso — morango e canela",
            "source_method_ids": [
              "PM-SRC-7A6D11BAC7",
              "PM-SRC-63E09E4CC0"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador potente",
              "tigela",
              "batedor",
              "frigideira antiaderente"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Usar a fruta congelada e o iogurte zero lactose bem frio."
              },
              {
                "order": 2,
                "instruction": "Processar junto com whey/ingredientes autorizados somente até formar textura lisa de sorvete."
              },
              {
                "order": 3,
                "instruction": "Consumir imediatamente para preservar a textura."
              },
              {
                "order": 4,
                "instruction": "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo."
              },
              {
                "order": 5,
                "instruction": "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada."
              },
              {
                "order": 6,
                "instruction": "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar."
              },
              {
                "order": 7,
                "instruction": "Virar e terminar apenas até o centro firmar."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 20 s de processamento",
              "fonte: 2–3 min primeiro lado + ~2 min segundo"
            ],
            "source_temperature_reference": [
              "sem cocção; ingredientes congelados/frios",
              "médio-baixo"
            ],
            "texture_or_doneness_endpoint": [
              "textura lisa de sorvete soft, sem derreter",
              "bordas firmes, exterior dourado e centro cozido"
            ],
            "adaptation_guardrails": [
              "Mel/agave não entra salvo se listado.",
              "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Açúcares adicionados e leite condensado das referências foram omitidos.",
          "Whey zero lactose foi usado para atingir proteína; fruta, iogurte e amêndoas são reescalados ao alvo.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bater com gelo e pouca fruta",
        "source_method_coverage": {
          "total_sources": 2,
          "direct_method_sources": 2,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-7A6D11BAC7",
            "PM-SRC-63E09E4CC0"
          ]
        }
      }
    },
    "NEW-SS-BV01": {
      "id": "NEW-SS-BV01",
      "name": "Bife com chimichurri em tiras",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "selar e fatiar fino",
      "seasoning_text": "chimichurri",
      "seasoning_refs": [
        "T032"
      ],
      "source_ids": [
        "SRC-AEF5B9DDD4"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.6,
        "best_rating_count": 27,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.65,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Bife com chimichurri em tiras",
            "source_method_ids": [
              "PM-SRC-AEF5B9DDD4"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador ou faca",
              "tigela",
              "chapa ou frigideira",
              "pinça"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Picar/processar ervas, alho e aromáticos autorizados do chimichurri e combinar com o ácido e a gordura contabilizada até virar molho rústico."
              },
              {
                "order": 2,
                "instruction": "Secar/temperar o bife e esfregar somente a gordura autorizada na superfície."
              },
              {
                "order": 3,
                "instruction": "Selar em chapa/frigideira quente; a fonte usa 2–3 min por lado para bifes de 125 g, mas o tempo deve seguir espessura e ponto."
              },
              {
                "order": 4,
                "instruction": "Descansar alguns minutos antes de fatiar e só então aplicar o chimichurri."
              }
            ],
            "source_time_reference": [
              "fonte: 2–3 min por lado; descanso de alguns minutos"
            ],
            "source_temperature_reference": [
              "chapa/frigideira quente"
            ],
            "texture_or_doneness_endpoint": [
              "crosta externa, ponto interno desejado e sucos redistribuídos após descanso"
            ],
            "adaptation_guardrails": [
              "Batata/fritas e salada da fonte não são parte automática da adaptação.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "selar e fatiar fino",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AEF5B9DDD4"
          ]
        }
      }
    },
    "NEW-SS-BV02": {
      "id": "NEW-SS-BV02",
      "name": "Bife ao miso em tiras",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "marinar e selar",
      "seasoning_text": "miso e gengibre",
      "seasoning_refs": [
        "T012"
      ],
      "source_ids": [
        "SRC-58CC1ECA0E"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 30,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.65,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Bife ao miso em tiras",
            "source_method_ids": [
              "PM-SRC-58CC1ECA0E"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "saco ou recipiente para marinar",
              "frigideira pesada, chapa ou churrasqueira",
              "pinça"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar o miso e aromáticos autorizados e cobrir uniformemente o bife."
              },
              {
                "order": 2,
                "instruction": "Marinar refrigerado; a fonte usa no mínimo 1 h e permite até 2 dias."
              },
              {
                "order": 3,
                "instruction": "Antes de selar, retirar o excesso de marinada superficial para reduzir queima."
              },
              {
                "order": 4,
                "instruction": "Aquecer muito bem a chapa/frigideira/churrasqueira e selar dos dois lados. A fonte usa cerca de 3 min por lado para malpassado ao ponto em bife semelhante."
              },
              {
                "order": 5,
                "instruction": "Descansar antes de fatiar contra a fibra."
              }
            ],
            "source_time_reference": [
              "fonte: marinada ≥1 h (até 2 dias); ~3 min por lado para medium-rare; descanso ~1 min"
            ],
            "source_temperature_reference": [
              "superfície muito quente"
            ],
            "texture_or_doneness_endpoint": [
              "crosta bem selada e ponto interno desejado"
            ],
            "adaptation_guardrails": [
              "Não usar açúcar, saquê/xerez ou acompanhamentos da fonte se não estiverem autorizados. Tempo de chapa depende da espessura e do corte real.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "marinar e selar",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-58CC1ECA0E"
          ]
        }
      }
    },
    "NEW-SS-BV03": {
      "id": "NEW-SS-BV03",
      "name": "Bife apimentado",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "selar com crosta de pimenta",
      "seasoning_text": "pimenta-do-reino",
      "seasoning_refs": [
        "T088"
      ],
      "source_ids": [
        "SRC-FF4DBC0D5A"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 17,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.65,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Bife apimentado",
            "source_method_ids": [
              "PM-SRC-FF4DBC0D5A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "chapa/griddle",
              "pinça"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar a carne, usar somente a gordura contabilizada e pressionar pimenta moída grosseiramente na superfície."
              },
              {
                "order": 2,
                "instruction": "Aquecer bem a chapa e selar os bifes sem movimentar excessivamente."
              },
              {
                "order": 3,
                "instruction": "Como referência da fonte para filés de ~140 g: 2,5 min por lado malpassado ao ponto, 3,5 min por lado ao ponto e 4,5 min por lado bem-passado. Ajustar à espessura real."
              },
              {
                "order": 4,
                "instruction": "Descansar cerca de 5 min antes de servir/fatiar."
              }
            ],
            "source_time_reference": [
              "fonte: 2,5–4,5 min por lado conforme ponto; descanso 5 min"
            ],
            "source_temperature_reference": [
              "chapa quente"
            ],
            "texture_or_doneness_endpoint": [
              "crosta apimentada e ponto interno desejado"
            ],
            "adaptation_guardrails": [
              "Manteiga e batatas da fonte só entram se estiverem autorizadas.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "selar com crosta de pimenta",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-FF4DBC0D5A"
          ]
        }
      }
    },
    "NEW-SS-BV04": {
      "id": "NEW-SS-BV04",
      "name": "Bife simples na chapa",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "chapa quente; descanso curto",
      "seasoning_text": "sal, alho e pimenta",
      "seasoning_refs": [
        "T098"
      ],
      "source_ids": [
        "SRC-28230B968D"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.4,
        "best_rating_count": 36,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.65,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Bife simples na chapa",
            "source_method_ids": [
              "PM-SRC-28230B968D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira pesada",
              "pinça"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Retirar o bife da geladeira com antecedência curta, secar a superfície e temperar."
              },
              {
                "order": 2,
                "instruction": "Aquecer a frigideira em fogo alto com a gordura prevista; reduzir levemente quando a gordura estiver quente."
              },
              {
                "order": 3,
                "instruction": "Selar virando a cada 30–60 s para desenvolver crosta uniforme."
              },
              {
                "order": 4,
                "instruction": "Retirar no ponto desejado, repousar e fatiar contra a fibra quando aplicável."
              }
            ],
            "source_time_reference": [
              "fonte para steak ~2 cm: ~3 min rare; 4–5 min medium; 7–8 min well done"
            ],
            "source_temperature_reference": [
              "fogo alto → médio-alto; fonte cita 50°C rare, 60°C medium, 70°C well done"
            ],
            "texture_or_doneness_endpoint": [
              "crosta marrom; ponto interno escolhido"
            ],
            "adaptation_guardrails": [
              "Usar somente a gordura prevista; manteiga/alho/ervas da fonte só entram se autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "chapa quente; descanso curto",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-28230B968D"
          ]
        }
      }
    },
    "NEW-SS-BV05": {
      "id": "NEW-SS-BV05",
      "name": "Bife na air fryer",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "air fryer; virar uma vez",
      "seasoning_text": "sal e pimenta",
      "seasoning_refs": [
        "T098"
      ],
      "source_ids": [
        "SRC-28230B968D"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.4,
        "best_rating_count": 36,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING008"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING008",
              "raw_state": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
              "yield_factor": 0.65,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Bife na air fryer",
            "source_method_ids": [
              "PM-SRC-28230B968D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira pesada",
              "pinça"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Retirar o bife da geladeira com antecedência curta, secar a superfície e temperar."
              },
              {
                "order": 2,
                "instruction": "Aquecer a frigideira em fogo alto com a gordura prevista; reduzir levemente quando a gordura estiver quente."
              },
              {
                "order": 3,
                "instruction": "Selar virando a cada 30–60 s para desenvolver crosta uniforme."
              },
              {
                "order": 4,
                "instruction": "Retirar no ponto desejado, repousar e fatiar contra a fibra quando aplicável."
              }
            ],
            "source_time_reference": [
              "fonte para steak ~2 cm: ~3 min rare; 4–5 min medium; 7–8 min well done"
            ],
            "source_temperature_reference": [
              "fogo alto → médio-alto; fonte cita 50°C rare, 60°C medium, 70°C well done"
            ],
            "texture_or_doneness_endpoint": [
              "crosta marrom; ponto interno escolhido"
            ],
            "adaptation_guardrails": [
              "Usar somente a gordura prevista; manteiga/alho/ervas da fonte só entram se autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "air fryer; virar uma vez",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-28230B968D"
          ]
        }
      }
    },
    "NEW-SS-BV06": {
      "id": "NEW-SS-BV06",
      "name": "Hambúrguer bovino sem pão",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "moldar disco e chapear",
      "seasoning_text": "sal, pimenta e alho",
      "seasoning_refs": [
        "T098"
      ],
      "source_ids": [
        "SRC-2D6228D97C"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 108,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Hambúrguer bovino sem pão",
            "source_method_ids": [
              "PM-SRC-2D6228D97C"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "chapa/grelha",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Moldar discos uniformes com a carne e temperos autorizados, manipulando o mínimo necessário."
              },
              {
                "order": 2,
                "instruction": "Resfriar os discos por cerca de 30 min se houver tempo para firmar."
              },
              {
                "order": 3,
                "instruction": "Grelhar/chapear em calor médio-alto sem pressionar o hambúrguer."
              },
              {
                "order": 4,
                "instruction": "Virar uma vez ou conforme necessário; retirar no ponto definido para a carne moída e deixar repousar brevemente."
              }
            ],
            "source_time_reference": [
              "fonte: ~5 min por lado para hambúrguer de ~3 cm"
            ],
            "source_temperature_reference": [
              "grelha/chapa média-quente"
            ],
            "texture_or_doneness_endpoint": [
              "crosta dourada e interior cozido"
            ],
            "adaptation_guardrails": [
              "A fonte usa cebola/ovo; omitir se não estiverem na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "moldar disco e chapear",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-2D6228D97C"
          ]
        }
      }
    },
    "NEW-SS-BV07": {
      "id": "NEW-SS-BV07",
      "name": "Kofta bovina no espeto",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "moldar no espeto e grelhar",
      "seasoning_text": "cominho, alho e ervas",
      "seasoning_refs": [
        "T103"
      ],
      "source_ids": [
        "SRC-2F77203D66"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 148,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Kofta bovina no espeto",
            "source_method_ids": [
              "PM-SRC-2F77203D66"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "espetos metálicos",
              "chapa/griddle ou churrasqueira",
              "pinça"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne crua moída com cominho, coentro, alho, hortelã e demais temperos autorizados até distribuir; evitar compactar excessivamente."
              },
              {
                "order": 2,
                "instruction": "Dividir e moldar em ovais/cilindros, espetar e pincelar somente a gordura autorizada."
              },
              {
                "order": 3,
                "instruction": "Aquecer bem a chapa e cozinhar sem tentar virar antes de a superfície selar."
              },
              {
                "order": 4,
                "instruction": "A fonte usa cerca de 3–4 min por lado; ajustar à espessura da adaptação. A gramagem desta página já deve ser pesada antes da cocção; não é necessário repesar para porcionar."
              }
            ],
            "source_time_reference": [
              "fonte: ~3–4 min por lado"
            ],
            "source_temperature_reference": [
              "chapa/churrasqueira bem quente"
            ],
            "texture_or_doneness_endpoint": [
              "superfície selada/dourada e centro cozido"
            ],
            "adaptation_guardrails": [
              "A fonte usa cordeiro; nas versões bovinas, preservar técnica/formato, mas usar apenas a carne prevista na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "moldar no espeto e grelhar",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-2F77203D66"
          ]
        }
      }
    },
    "NEW-SS-BV08": {
      "id": "NEW-SS-BV08",
      "name": "Kofta bovina em mini-hambúrguer",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "moldar discos pequenos e grelhar",
      "seasoning_text": "cominho e ervas",
      "seasoning_refs": [
        "T103"
      ],
      "source_ids": [
        "SRC-2F77203D66"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 148,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Kofta bovina em mini-hambúrguer",
            "source_method_ids": [
              "PM-SRC-2F77203D66"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "espetos metálicos",
              "chapa/griddle ou churrasqueira",
              "pinça"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne crua moída com cominho, coentro, alho, hortelã e demais temperos autorizados até distribuir; evitar compactar excessivamente."
              },
              {
                "order": 2,
                "instruction": "Dividir e moldar em ovais/cilindros, espetar e pincelar somente a gordura autorizada."
              },
              {
                "order": 3,
                "instruction": "Aquecer bem a chapa e cozinhar sem tentar virar antes de a superfície selar."
              },
              {
                "order": 4,
                "instruction": "A fonte usa cerca de 3–4 min por lado; ajustar à espessura da adaptação. A gramagem desta página já deve ser pesada antes da cocção; não é necessário repesar para porcionar."
              }
            ],
            "source_time_reference": [
              "fonte: ~3–4 min por lado"
            ],
            "source_temperature_reference": [
              "chapa/churrasqueira bem quente"
            ],
            "texture_or_doneness_endpoint": [
              "superfície selada/dourada e centro cozido"
            ],
            "adaptation_guardrails": [
              "A fonte usa cordeiro; nas versões bovinas, preservar técnica/formato, mas usar apenas a carne prevista na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "moldar discos pequenos e grelhar",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-2F77203D66"
          ]
        }
      }
    },
    "NEW-SS-BV09": {
      "id": "NEW-SS-BV09",
      "name": "Kofte marroquino seco",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "almôndegas douradas; tomate apenas em traço",
      "seasoning_text": "harissa e cominho",
      "seasoning_refs": [
        "T103"
      ],
      "source_ids": [
        "SRC-2F1142BB4F"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 42,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Kofte marroquino seco",
            "source_method_ids": [
              "PM-SRC-2F1142BB4F"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "espetos",
              "grill/churrasqueira",
              "panela para molho"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne crua moída com cebola/ervas/especiarias autorizadas e moldar cilindros uniformes em espetos."
              },
              {
                "order": 2,
                "instruction": "Para o molho, perfumar o alho e reduzir tomate/harissa autorizados até espessar; a fonte reduz por 15–20 min."
              },
              {
                "order": 3,
                "instruction": "Grelhar as koftas, virando para dourar por igual; a fonte usa 6–8 min no total."
              },
              {
                "order": 4,
                "instruction": "Montar com o molho autorizado e, quando previsto, iogurte zero lactose. A carne deve ser pesada crua na gramagem desta página antes da cocção; não é necessário repesar para porcionar."
              }
            ],
            "source_time_reference": [
              "fonte: molho 15–20 min; koftas 6–8 min no grill"
            ],
            "source_temperature_reference": [
              "grill quente; molho em fervura suave"
            ],
            "texture_or_doneness_endpoint": [
              "koftas bem douradas e cozidas no centro; molho espesso"
            ],
            "adaptation_guardrails": [
              "Iogurte, pinoli, açúcar e acompanhamentos só entram se autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "almôndegas douradas; tomate apenas em traço",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-2F1142BB4F"
          ]
        }
      }
    },
    "NEW-SS-BV10": {
      "id": "NEW-SS-BV10",
      "name": "Carne moída cajun em bolinhos",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "bolinhos pequenos assados/air fryer",
      "seasoning_text": "cajun",
      "seasoning_refs": [
        "T098"
      ],
      "source_ids": [
        "SRC-2D6228D97C"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 108,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Carne moída cajun em bolinhos",
            "source_method_ids": [
              "PM-SRC-2D6228D97C"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "chapa/grelha",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Moldar discos uniformes com a carne e temperos autorizados, manipulando o mínimo necessário."
              },
              {
                "order": 2,
                "instruction": "Resfriar os discos por cerca de 30 min se houver tempo para firmar."
              },
              {
                "order": 3,
                "instruction": "Grelhar/chapear em calor médio-alto sem pressionar o hambúrguer."
              },
              {
                "order": 4,
                "instruction": "Virar uma vez ou conforme necessário; retirar no ponto definido para a carne moída e deixar repousar brevemente."
              }
            ],
            "source_time_reference": [
              "fonte: ~5 min por lado para hambúrguer de ~3 cm"
            ],
            "source_temperature_reference": [
              "grelha/chapa média-quente"
            ],
            "texture_or_doneness_endpoint": [
              "crosta dourada e interior cozido"
            ],
            "adaptation_guardrails": [
              "A fonte usa cebola/ovo; omitir se não estiverem na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bolinhos pequenos assados/air fryer",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-2D6228D97C"
          ]
        }
      }
    },
    "NEW-SS-BV11": {
      "id": "NEW-SS-BV11",
      "name": "Carne moída com ervas em almôndegas",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "assadas ou douradas",
      "seasoning_text": "ervas, alho e pimenta",
      "seasoning_refs": [
        "T052"
      ],
      "source_ids": [
        "SRC-D2DB83ACE8"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.2,
        "best_rating_count": 12,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Carne moída com ervas em almôndegas",
            "source_method_ids": [
              "PM-SRC-D2DB83ACE8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "frigideira larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne crua moída com ervas e demais ingredientes autorizados, manipulando apenas até ligar."
              },
              {
                "order": 2,
                "instruction": "Moldar almôndegas uniformes."
              },
              {
                "order": 3,
                "instruction": "Dourar em lotes, movimentando para colorir todos os lados."
              },
              {
                "order": 4,
                "instruction": "Se houver molho autorizado, terminar nele em fervura suave; na versão de lanche, concluir a cocção sem os acompanhamentos/molho da fonte."
              }
            ],
            "source_time_reference": [
              "fonte: após dourar, 15 min no molho"
            ],
            "source_temperature_reference": [
              "frigideira quente para dourar; fervura suave para finalizar"
            ],
            "texture_or_doneness_endpoint": [
              "douradas e cozidas no centro"
            ],
            "adaptation_guardrails": [
              "Salsicha, breadcrumbs, parmesão, ovo, molho e massa da fonte só entram se autorizados; aqui a fonte é usada principalmente para técnica de mistura, moldagem e dourado.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "assadas ou douradas",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-D2DB83ACE8"
          ]
        }
      }
    },
    "NEW-SS-BV12": {
      "id": "NEW-SS-BV12",
      "name": "Carne moída estilo burger smash",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "bolas pequenas prensadas na chapa",
      "seasoning_text": "sal e pimenta",
      "seasoning_refs": [
        "T098"
      ],
      "source_ids": [
        "SRC-2D6228D97C"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.0,
        "best_rating_count": 108,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING007"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING007",
              "raw_state": "Acém bovino cru, moído, pronto para cozinhar",
              "yield_factor": 0.75,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Carne moída estilo burger smash",
            "source_method_ids": [
              "PM-SRC-2D6228D97C"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "chapa/grelha",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Moldar discos uniformes com a carne e temperos autorizados, manipulando o mínimo necessário."
              },
              {
                "order": 2,
                "instruction": "Resfriar os discos por cerca de 30 min se houver tempo para firmar."
              },
              {
                "order": 3,
                "instruction": "Grelhar/chapear em calor médio-alto sem pressionar o hambúrguer."
              },
              {
                "order": 4,
                "instruction": "Virar uma vez ou conforme necessário; retirar no ponto definido para a carne moída e deixar repousar brevemente."
              }
            ],
            "source_time_reference": [
              "fonte: ~5 min por lado para hambúrguer de ~3 cm"
            ],
            "source_temperature_reference": [
              "grelha/chapa média-quente"
            ],
            "texture_or_doneness_endpoint": [
              "crosta dourada e interior cozido"
            ],
            "adaptation_guardrails": [
              "A fonte usa cebola/ovo; omitir se não estiverem na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "bolas pequenas prensadas na chapa",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-2D6228D97C"
          ]
        }
      }
    },
    "NEW-SS-CV01": {
      "id": "NEW-SS-CV01",
      "name": "Frango grelhado ao limão e alho",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "grelhar em tiras",
      "seasoning_text": "limão, alho e páprica",
      "seasoning_refs": [
        "T021"
      ],
      "source_ids": [
        "SRC-08D66807B8"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango grelhado ao limão e alho",
            "source_method_ids": [
              "PM-SRC-08D66807B8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela não metálica",
              "grelha/chapa ou grill",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro."
              },
              {
                "order": 3,
                "instruction": "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada."
              },
              {
                "order": 4,
                "instruction": "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h"
            ],
            "source_temperature_reference": [
              "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido"
            ],
            "texture_or_doneness_endpoint": [
              "bem dourado por fora e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
              "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "grelhar em tiras",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-08D66807B8"
          ]
        }
      }
    },
    "NEW-SS-CV02": {
      "id": "NEW-SS-CV02",
      "name": "Frango ao limão e tomilho",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "grelha bem quente",
      "seasoning_text": "limão, tomilho e pimenta",
      "seasoning_refs": [
        "T021"
      ],
      "source_ids": [
        "SRC-08D66807B8"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango ao limão e tomilho",
            "source_method_ids": [
              "PM-SRC-08D66807B8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela não metálica",
              "grelha/chapa ou grill",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro."
              },
              {
                "order": 3,
                "instruction": "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada."
              },
              {
                "order": 4,
                "instruction": "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h"
            ],
            "source_temperature_reference": [
              "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido"
            ],
            "texture_or_doneness_endpoint": [
              "bem dourado por fora e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
              "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "grelha bem quente",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-08D66807B8"
          ]
        }
      }
    },
    "NEW-SS-CV03": {
      "id": "NEW-SS-CV03",
      "name": "Frango jerk",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "marinar e grelhar",
      "seasoning_text": "jerk",
      "seasoning_refs": [
        "T101"
      ],
      "source_ids": [
        "SRC-A9091F6283"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.3,
        "best_rating_count": 36,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango jerk",
            "source_method_ids": [
              "PM-SRC-A9091F6283"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador ou pilão",
              "assadeira",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Processar/misturar os temperos jerk, alho, gengibre, tomilho, pimenta e limão/lima autorizados até formar pasta."
              },
              {
                "order": 2,
                "instruction": "Cobrir o frango uniformemente com a pasta."
              },
              {
                "order": 3,
                "instruction": "Assar ou grelhar até dourar e cozinhar por completo."
              }
            ],
            "source_time_reference": [
              "fonte para coxas com osso: 45–50 min"
            ],
            "source_temperature_reference": [
              "200°C / 180°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourado, aromático e cozido"
            ],
            "adaptation_guardrails": [
              "Coconut cream e demais ingredientes da fonte só entram se constarem na adaptação; tempo da coxa não deve ser aplicado ao peito.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "marinar e grelhar",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A9091F6283"
          ]
        }
      }
    },
    "NEW-SS-CV04": {
      "id": "NEW-SS-CV04",
      "name": "Frango tikka em espetos",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "espetos grelhados",
      "seasoning_text": "garam masala, alho e gengibre",
      "seasoning_refs": [
        "T099"
      ],
      "source_ids": [
        "SRC-C52DCF7F9D"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 84,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango tikka em espetos",
            "source_method_ids": [
              "PM-SRC-C52DCF7F9D"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "espetos",
              "grill/forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar iogurte e pasta/especiarias tikka autorizadas; envolver os cubos de frango."
              },
              {
                "order": 2,
                "instruction": "Marinar por cerca de 1 h quando possível."
              },
              {
                "order": 3,
                "instruction": "Retirar excesso de marinada, colocar nos espetos e grelhar, virando periodicamente."
              },
              {
                "order": 4,
                "instruction": "Retirar quando bem dourado e cozido."
              }
            ],
            "source_time_reference": [
              "fonte: 15–20 min sob grill médio; marinada opcional ~1 h"
            ],
            "source_temperature_reference": [
              "grill médio"
            ],
            "texture_or_doneness_endpoint": [
              "bordas douradas e centro cozido"
            ],
            "adaptation_guardrails": [
              "Usar iogurte zero lactose; tomate/chapati/salada da fonte não entram salvo se listados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "espetos grelhados",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-C52DCF7F9D"
          ]
        }
      }
    },
    "NEW-SS-CV05": {
      "id": "NEW-SS-CV05",
      "name": "Frango curry seco",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "cubos salteados",
      "seasoning_text": "curry, cominho e coentro",
      "seasoning_refs": [
        "T099"
      ],
      "source_ids": [
        "SRC-A400F927EE"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 360,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango curry seco",
            "source_method_ids": [
              "PM-SRC-A400F927EE"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira/panela larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Amaciar cebola e aromáticos; adicionar alho/gengibre e cozinhar brevemente."
              },
              {
                "order": 2,
                "instruction": "Adicionar o frango e dourar os cubos."
              },
              {
                "order": 3,
                "instruction": "Adicionar especiarias/pasta e os componentes de molho autorizados; cozinhar em fervura suave até o molho reduzir e aderir."
              },
              {
                "order": 4,
                "instruction": "Quando houver iogurte na adaptação, incorporar no final e evitar fervura forte."
              }
            ],
            "source_time_reference": [
              "fonte: cebola 8–10 min; aromáticos ~1 min; frango ~5 min antes do molho; molho 25–30 min"
            ],
            "source_temperature_reference": [
              "médio → fervura suave"
            ],
            "texture_or_doneness_endpoint": [
              "frango cozido e molho concentrado"
            ],
            "adaptation_guardrails": [
              "A versão “curry seco” pode omitir tomate/água/iogurte; nesse caso parar quando especiarias estiverem aderidas ao frango.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "cubos salteados",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A400F927EE"
          ]
        }
      }
    },
    "NEW-SS-CV06": {
      "id": "NEW-SS-CV06",
      "name": "Frango souvlaki em espetos",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "espetos grelhados",
      "seasoning_text": "limão, orégano e alho",
      "seasoning_refs": [
        "T002"
      ],
      "source_ids": [
        "SRC-08D66807B8"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango souvlaki em espetos",
            "source_method_ids": [
              "PM-SRC-08D66807B8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela não metálica",
              "grelha/chapa ou grill",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro."
              },
              {
                "order": 3,
                "instruction": "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada."
              },
              {
                "order": 4,
                "instruction": "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h"
            ],
            "source_temperature_reference": [
              "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido"
            ],
            "texture_or_doneness_endpoint": [
              "bem dourado por fora e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
              "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "espetos grelhados",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-08D66807B8"
          ]
        }
      }
    },
    "NEW-SS-CV07": {
      "id": "NEW-SS-CV07",
      "name": "Frango gyros em tiras",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "tiras bem douradas",
      "seasoning_text": "orégano, alho e limão",
      "seasoning_refs": [
        "T002"
      ],
      "source_ids": [
        "SRC-08D66807B8"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango gyros em tiras",
            "source_method_ids": [
              "PM-SRC-08D66807B8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela não metálica",
              "grelha/chapa ou grill",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro."
              },
              {
                "order": 3,
                "instruction": "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada."
              },
              {
                "order": 4,
                "instruction": "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h"
            ],
            "source_temperature_reference": [
              "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido"
            ],
            "texture_or_doneness_endpoint": [
              "bem dourado por fora e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
              "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "tiras bem douradas",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-08D66807B8"
          ]
        }
      }
    },
    "NEW-SS-CV08": {
      "id": "NEW-SS-CV08",
      "name": "Almôndegas de frango com limão e manjericão",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "assadas",
      "seasoning_text": "limão, manjericão e alho",
      "seasoning_refs": [
        "T021"
      ],
      "source_ids": [
        "SRC-BAAEF5D467"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 4,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Almôndegas de frango com limão e manjericão",
            "source_method_ids": [
              "PM-SRC-BAAEF5D467"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "frigideira larga",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a proteína crua moída com limão, manjericão, alho e somente os ligantes/queijo que estejam autorizados."
              },
              {
                "order": 2,
                "instruction": "Moldar almôndegas uniformes; a fonte usa unidades de cerca de 35 g cruas."
              },
              {
                "order": 3,
                "instruction": "Dourar as almôndegas em fogo médio-alto, movimentando para colorir todos os lados."
              },
              {
                "order": 4,
                "instruction": "Quando houver molho de tomate autorizado, terminar o cozimento em fervura suave até o centro estar cozido; sem molho, concluir na frigideira/forno conforme a ficha."
              }
            ],
            "source_time_reference": [
              "fonte: dourar 6–8 min; depois 15 min no molho"
            ],
            "source_temperature_reference": [
              "médio-alto para dourar; fervura suave no molho"
            ],
            "texture_or_doneness_endpoint": [
              "douradas por fora e cozidas no centro"
            ],
            "adaptation_guardrails": [
              "Breadcrumbs, leite, pesto, tomate e açúcar só entram se estiverem autorizados; para nossa versão simples, preservar principalmente limão/manjericão/alho e a técnica de moldar+dourar.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "assadas",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-BAAEF5D467"
          ]
        }
      }
    },
    "NEW-SS-CV09": {
      "id": "NEW-SS-CV09",
      "name": "Mini hambúrguer de frango",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "moldado e grelhado",
      "seasoning_text": "ervas e pimenta",
      "seasoning_refs": [
        "T052"
      ],
      "source_ids": [
        "SRC-E7030B5E00"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.3,
        "best_rating_count": 12,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Mini hambúrguer de frango",
            "source_method_ids": [
              "PM-SRC-E7030B5E00"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "assadeira",
              "grill/forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne de frango crua moída com alho/ervas e demais ingredientes autorizados."
              },
              {
                "order": 2,
                "instruction": "Dividir e moldar discos uniformes."
              },
              {
                "order": 3,
                "instruction": "Pincelar somente o azeite contabilizado e grelhar/assar, virando uma vez, até dourar e cozinhar no centro."
              },
              {
                "order": 4,
                "instruction": "Após a cocção, porcionar pelo peso cru indicado antes da cocção indicado na alternativa."
              }
            ],
            "source_time_reference": [
              "fonte: ~10 min sob grill, virando uma vez"
            ],
            "source_temperature_reference": [
              "grill médio"
            ],
            "texture_or_doneness_endpoint": [
              "discos firmes, dourados e cozidos no centro"
            ],
            "adaptation_guardrails": [
              "Grão-de-bico, batata-doce, bagel, maionese e acompanhamentos da fonte são omitidos na versão de lanche.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "moldado e grelhado",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-E7030B5E00"
          ]
        }
      }
    },
    "NEW-SS-CV10": {
      "id": "NEW-SS-CV10",
      "name": "Kofta de frango",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "moldada e grelhada",
      "seasoning_text": "cominho, coentro e alho",
      "seasoning_refs": [
        "T103"
      ],
      "source_ids": [
        "SRC-DB4B66F04A"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 9,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Kofta de frango",
            "source_method_ids": [
              "PM-SRC-DB4B66F04A"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "frigideira antiaderente ou churrasqueira",
              "espátula/espetos"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar frango cru moído com ovo/aveia apenas se autorizados e com orégano, limão, cominho, coentro e ervas previstas."
              },
              {
                "order": 2,
                "instruction": "Moldar koftas/bolas uniformes."
              },
              {
                "order": 3,
                "instruction": "Cozinhar em frigideira antiaderente com o azeite contabilizado, dourando dos dois lados; alternativamente finalizar em churrasqueira conforme a técnica da fonte."
              },
              {
                "order": 4,
                "instruction": "Depois de cozidas, pesar a porção final de proteína conforme a alternativa."
              }
            ],
            "source_time_reference": [
              "fonte: frigideira ~5 min por lado; churrasqueira ~4 min por lado após firmar"
            ],
            "source_temperature_reference": [
              "fogo médio / churrasqueira quente"
            ],
            "texture_or_doneness_endpoint": [
              "bem douradas e cozidas no centro"
            ],
            "adaptation_guardrails": [
              "Hummus, salada, aveia e ovo só entram se autorizados; a nossa versão preserva formato e perfil de especiarias.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "moldada e grelhada",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-DB4B66F04A"
          ]
        }
      }
    },
    "NEW-SS-CV11": {
      "id": "NEW-SS-CV11",
      "name": "Frango em cubos na air fryer com páprica",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "air fryer até bordas douradas",
      "seasoning_text": "páprica e alho",
      "seasoning_refs": [
        "T098"
      ],
      "source_ids": [
        "SRC-08D66807B8"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango em cubos na air fryer com páprica",
            "source_method_ids": [
              "PM-SRC-08D66807B8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela não metálica",
              "grelha/chapa ou grill",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro."
              },
              {
                "order": 3,
                "instruction": "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada."
              },
              {
                "order": 4,
                "instruction": "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h"
            ],
            "source_temperature_reference": [
              "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido"
            ],
            "texture_or_doneness_endpoint": [
              "bem dourado por fora e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
              "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "air fryer até bordas douradas",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-08D66807B8"
          ]
        }
      }
    },
    "NEW-SS-CV12": {
      "id": "NEW-SS-CV12",
      "name": "Frango grelhado com za’atar",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "grelha/chapado",
      "seasoning_text": "za’atar e limão",
      "seasoning_refs": [
        "T102"
      ],
      "source_ids": [
        "SRC-08D66807B8"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango grelhado com za’atar",
            "source_method_ids": [
              "PM-SRC-08D66807B8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela não metálica",
              "grelha/chapa ou grill",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro."
              },
              {
                "order": 3,
                "instruction": "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada."
              },
              {
                "order": 4,
                "instruction": "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h"
            ],
            "source_temperature_reference": [
              "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido"
            ],
            "texture_or_doneness_endpoint": [
              "bem dourado por fora e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
              "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "grelha/chapado",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-08D66807B8"
          ]
        }
      }
    },
    "NEW-SS-CV13": {
      "id": "NEW-SS-CV13",
      "name": "Frango com harissa seca",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "assado/air fryer",
      "seasoning_text": "harissa e limão",
      "seasoning_refs": [
        "T103"
      ],
      "source_ids": [
        "SRC-08D66807B8"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango com harissa seca",
            "source_method_ids": [
              "PM-SRC-08D66807B8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela não metálica",
              "grelha/chapa ou grill",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro."
              },
              {
                "order": 3,
                "instruction": "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada."
              },
              {
                "order": 4,
                "instruction": "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h"
            ],
            "source_temperature_reference": [
              "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido"
            ],
            "texture_or_doneness_endpoint": [
              "bem dourado por fora e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
              "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "assado/air fryer",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-08D66807B8"
          ]
        }
      }
    },
    "NEW-SS-CV14": {
      "id": "NEW-SS-CV14",
      "name": "Frango com mostarda e ervas",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "grelhado; mostarda em camada fina",
      "seasoning_text": "mostarda e ervas",
      "seasoning_refs": [
        "T004"
      ],
      "source_ids": [
        "SRC-08D66807B8"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.8,
        "best_rating_count": 18,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING006"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Frango com mostarda e ervas",
            "source_method_ids": [
              "PM-SRC-08D66807B8"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela não metálica",
              "grelha/chapa ou grill",
              "espetos opcionais"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada."
              },
              {
                "order": 2,
                "instruction": "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro."
              },
              {
                "order": 3,
                "instruction": "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada."
              },
              {
                "order": 4,
                "instruction": "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
              }
            ],
            "source_time_reference": [
              "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h"
            ],
            "source_temperature_reference": [
              "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido"
            ],
            "texture_or_doneness_endpoint": [
              "bem dourado por fora e cozido por completo"
            ],
            "adaptation_guardrails": [
              "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
              "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "grelhado; mostarda em camada fina",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-08D66807B8"
          ]
        }
      }
    },
    "NEW-SS-FV01": {
      "id": "NEW-SS-FV01",
      "name": "Tilápia com alho e páprica",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "grelhada/assada",
      "seasoning_text": "alho, páprica e limão",
      "seasoning_refs": [
        "T021"
      ],
      "source_ids": [
        "SRC-86C8B417AE"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 860,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING010"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING010",
              "raw_state": "Filé de tilápia cru, sem pele, pronto para cozinhar",
              "yield_factor": 0.7,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Tilápia com alho e páprica",
            "source_method_ids": [
              "PM-SRC-86C8B417AE"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente ou pesada",
              "espátula de peixe",
              "papel-toalha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar muito bem os filés e temperar os dois lados."
              },
              {
                "order": 2,
                "instruction": "Aquecer o azeite previsto em fogo médio-alto."
              },
              {
                "order": 3,
                "instruction": "Colocar os filés sem sobrepor e selar até dourar; virar com cuidado e terminar o segundo lado."
              },
              {
                "order": 4,
                "instruction": "Finalizar com limão/ervas autorizados e retirar assim que o peixe lascar facilmente."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 4 min por lado"
            ],
            "source_temperature_reference": [
              "médio-alto"
            ],
            "texture_or_doneness_endpoint": [
              "opaco, úmido e lascando facilmente"
            ],
            "adaptation_guardrails": [
              "A fonte usa farinha e manteiga; omitir quando não constarem. Não é necessário lavar o peixe; apenas secar a superfície.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "grelhada/assada",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-86C8B417AE"
          ]
        }
      }
    },
    "NEW-SS-FV02": {
      "id": "NEW-SS-FV02",
      "name": "Tilápia ao limão e ervas",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "grelhada",
      "seasoning_text": "limão e ervas",
      "seasoning_refs": [
        "T021"
      ],
      "source_ids": [
        "SRC-86C8B417AE"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 860,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING010"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING010",
              "raw_state": "Filé de tilápia cru, sem pele, pronto para cozinhar",
              "yield_factor": 0.7,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Tilápia ao limão e ervas",
            "source_method_ids": [
              "PM-SRC-86C8B417AE"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente ou pesada",
              "espátula de peixe",
              "papel-toalha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar muito bem os filés e temperar os dois lados."
              },
              {
                "order": 2,
                "instruction": "Aquecer o azeite previsto em fogo médio-alto."
              },
              {
                "order": 3,
                "instruction": "Colocar os filés sem sobrepor e selar até dourar; virar com cuidado e terminar o segundo lado."
              },
              {
                "order": 4,
                "instruction": "Finalizar com limão/ervas autorizados e retirar assim que o peixe lascar facilmente."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 4 min por lado"
            ],
            "source_temperature_reference": [
              "médio-alto"
            ],
            "texture_or_doneness_endpoint": [
              "opaco, úmido e lascando facilmente"
            ],
            "adaptation_guardrails": [
              "A fonte usa farinha e manteiga; omitir quando não constarem. Não é necessário lavar o peixe; apenas secar a superfície.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "grelhada",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-86C8B417AE"
          ]
        }
      }
    },
    "NEW-SS-FV03": {
      "id": "NEW-SS-FV03",
      "name": "Tilápia ao parmesão",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "air fryer/forno com camada fina de parmesão",
      "seasoning_text": "parmesão e pimenta",
      "seasoning_refs": [
        "T017"
      ],
      "source_ids": [
        "SRC-62670668F4"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 10279,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING010"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING010",
              "raw_state": "Filé de tilápia cru, sem pele, pronto para cozinhar",
              "yield_factor": 0.7,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Tilápia ao parmesão",
            "source_method_ids": [
              "PM-SRC-62670668F4"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "assadeira rasa",
              "grill/broiler ou air fryer",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar/temperar os filés e dispor em camada única."
              },
              {
                "order": 2,
                "instruction": "Pré-cozinhar sob grill forte, virando na metade quando a espessura permitir."
              },
              {
                "order": 3,
                "instruction": "Aplicar uma camada fina da cobertura de parmesão adaptada."
              },
              {
                "order": 4,
                "instruction": "Voltar ao grill/air fryer apenas até dourar a cobertura e o peixe lascar."
              }
            ],
            "source_time_reference": [
              "fonte: ~4 min de grill inicial (virando na metade) + ~2 min após a cobertura"
            ],
            "source_temperature_reference": [
              "broiler/grill alto, filé próximo da fonte de calor"
            ],
            "texture_or_doneness_endpoint": [
              "parmesão dourado; peixe lascando"
            ],
            "adaptation_guardrails": [
              "A fonte usa maionese e manteiga; nossa adaptação não deve adicioná-las salvo se explicitamente contabilizadas.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "air fryer/forno com camada fina de parmesão",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-62670668F4"
          ]
        }
      }
    },
    "NEW-SS-FV04": {
      "id": "NEW-SS-FV04",
      "name": "Tilápia cajun",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "grelhada com rub seco",
      "seasoning_text": "cajun",
      "seasoning_refs": [
        "T098"
      ],
      "source_ids": [
        "SRC-86C8B417AE"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 860,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING010"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING010",
              "raw_state": "Filé de tilápia cru, sem pele, pronto para cozinhar",
              "yield_factor": 0.7,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Tilápia cajun",
            "source_method_ids": [
              "PM-SRC-86C8B417AE"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente ou pesada",
              "espátula de peixe",
              "papel-toalha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar muito bem os filés e temperar os dois lados."
              },
              {
                "order": 2,
                "instruction": "Aquecer o azeite previsto em fogo médio-alto."
              },
              {
                "order": 3,
                "instruction": "Colocar os filés sem sobrepor e selar até dourar; virar com cuidado e terminar o segundo lado."
              },
              {
                "order": 4,
                "instruction": "Finalizar com limão/ervas autorizados e retirar assim que o peixe lascar facilmente."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 4 min por lado"
            ],
            "source_temperature_reference": [
              "médio-alto"
            ],
            "texture_or_doneness_endpoint": [
              "opaco, úmido e lascando facilmente"
            ],
            "adaptation_guardrails": [
              "A fonte usa farinha e manteiga; omitir quando não constarem. Não é necessário lavar o peixe; apenas secar a superfície.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "grelhada com rub seco",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-86C8B417AE"
          ]
        }
      }
    },
    "NEW-SS-FV05": {
      "id": "NEW-SS-FV05",
      "name": "Tilápia com za’atar e limão",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "assada",
      "seasoning_text": "za’atar e limão",
      "seasoning_refs": [
        "T102"
      ],
      "source_ids": [
        "SRC-86C8B417AE"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 860,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING010"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING010",
              "raw_state": "Filé de tilápia cru, sem pele, pronto para cozinhar",
              "yield_factor": 0.7,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Tilápia com za’atar e limão",
            "source_method_ids": [
              "PM-SRC-86C8B417AE"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente ou pesada",
              "espátula de peixe",
              "papel-toalha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar muito bem os filés e temperar os dois lados."
              },
              {
                "order": 2,
                "instruction": "Aquecer o azeite previsto em fogo médio-alto."
              },
              {
                "order": 3,
                "instruction": "Colocar os filés sem sobrepor e selar até dourar; virar com cuidado e terminar o segundo lado."
              },
              {
                "order": 4,
                "instruction": "Finalizar com limão/ervas autorizados e retirar assim que o peixe lascar facilmente."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 4 min por lado"
            ],
            "source_temperature_reference": [
              "médio-alto"
            ],
            "texture_or_doneness_endpoint": [
              "opaco, úmido e lascando facilmente"
            ],
            "adaptation_guardrails": [
              "A fonte usa farinha e manteiga; omitir quando não constarem. Não é necessário lavar o peixe; apenas secar a superfície.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "assada",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-86C8B417AE"
          ]
        }
      }
    },
    "NEW-SS-FV06": {
      "id": "NEW-SS-FV06",
      "name": "Tilápia ao curry seco",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "frigideira; especiarias aderentes",
      "seasoning_text": "curry e coentro",
      "seasoning_refs": [
        "T099"
      ],
      "source_ids": [
        "SRC-86C8B417AE"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 860,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING010"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING010",
              "raw_state": "Filé de tilápia cru, sem pele, pronto para cozinhar",
              "yield_factor": 0.7,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Tilápia ao curry seco",
            "source_method_ids": [
              "PM-SRC-86C8B417AE"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente ou pesada",
              "espátula de peixe",
              "papel-toalha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar muito bem os filés e temperar os dois lados."
              },
              {
                "order": 2,
                "instruction": "Aquecer o azeite previsto em fogo médio-alto."
              },
              {
                "order": 3,
                "instruction": "Colocar os filés sem sobrepor e selar até dourar; virar com cuidado e terminar o segundo lado."
              },
              {
                "order": 4,
                "instruction": "Finalizar com limão/ervas autorizados e retirar assim que o peixe lascar facilmente."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 4 min por lado"
            ],
            "source_temperature_reference": [
              "médio-alto"
            ],
            "texture_or_doneness_endpoint": [
              "opaco, úmido e lascando facilmente"
            ],
            "adaptation_guardrails": [
              "A fonte usa farinha e manteiga; omitir quando não constarem. Não é necessário lavar o peixe; apenas secar a superfície.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "frigideira; especiarias aderentes",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-86C8B417AE"
          ]
        }
      }
    },
    "NEW-SS-FV07": {
      "id": "NEW-SS-FV07",
      "name": "Tilápia com harissa",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "forno/air fryer",
      "seasoning_text": "harissa e limão",
      "seasoning_refs": [
        "T103"
      ],
      "source_ids": [
        "SRC-86C8B417AE"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 860,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING010"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING010",
              "raw_state": "Filé de tilápia cru, sem pele, pronto para cozinhar",
              "yield_factor": 0.7,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Tilápia com harissa",
            "source_method_ids": [
              "PM-SRC-86C8B417AE"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente ou pesada",
              "espátula de peixe",
              "papel-toalha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar muito bem os filés e temperar os dois lados."
              },
              {
                "order": 2,
                "instruction": "Aquecer o azeite previsto em fogo médio-alto."
              },
              {
                "order": 3,
                "instruction": "Colocar os filés sem sobrepor e selar até dourar; virar com cuidado e terminar o segundo lado."
              },
              {
                "order": 4,
                "instruction": "Finalizar com limão/ervas autorizados e retirar assim que o peixe lascar facilmente."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 4 min por lado"
            ],
            "source_temperature_reference": [
              "médio-alto"
            ],
            "texture_or_doneness_endpoint": [
              "opaco, úmido e lascando facilmente"
            ],
            "adaptation_guardrails": [
              "A fonte usa farinha e manteiga; omitir quando não constarem. Não é necessário lavar o peixe; apenas secar a superfície.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "forno/air fryer",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-86C8B417AE"
          ]
        }
      }
    },
    "NEW-SS-FV08": {
      "id": "NEW-SS-FV08",
      "name": "Tilápia ao miso",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "forno; camada fina de miso",
      "seasoning_text": "miso e gengibre",
      "seasoning_refs": [
        "T012"
      ],
      "source_ids": [
        "SRC-86C8B417AE"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 860,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING010"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING010",
              "raw_state": "Filé de tilápia cru, sem pele, pronto para cozinhar",
              "yield_factor": 0.7,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Tilápia ao miso",
            "source_method_ids": [
              "PM-SRC-86C8B417AE"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente ou pesada",
              "espátula de peixe",
              "papel-toalha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar muito bem os filés e temperar os dois lados."
              },
              {
                "order": 2,
                "instruction": "Aquecer o azeite previsto em fogo médio-alto."
              },
              {
                "order": 3,
                "instruction": "Colocar os filés sem sobrepor e selar até dourar; virar com cuidado e terminar o segundo lado."
              },
              {
                "order": 4,
                "instruction": "Finalizar com limão/ervas autorizados e retirar assim que o peixe lascar facilmente."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 4 min por lado"
            ],
            "source_temperature_reference": [
              "médio-alto"
            ],
            "texture_or_doneness_endpoint": [
              "opaco, úmido e lascando facilmente"
            ],
            "adaptation_guardrails": [
              "A fonte usa farinha e manteiga; omitir quando não constarem. Não é necessário lavar o peixe; apenas secar a superfície.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "forno; camada fina de miso",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-86C8B417AE"
          ]
        }
      }
    },
    "NEW-SS-FV09": {
      "id": "NEW-SS-FV09",
      "name": "Tilápia ao dill e limão",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "grelhada",
      "seasoning_text": "dill e limão",
      "seasoning_refs": [
        "T089"
      ],
      "source_ids": [
        "SRC-86C8B417AE"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 860,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING010"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING010",
              "raw_state": "Filé de tilápia cru, sem pele, pronto para cozinhar",
              "yield_factor": 0.7,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Tilápia ao dill e limão",
            "source_method_ids": [
              "PM-SRC-86C8B417AE"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente ou pesada",
              "espátula de peixe",
              "papel-toalha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar muito bem os filés e temperar os dois lados."
              },
              {
                "order": 2,
                "instruction": "Aquecer o azeite previsto em fogo médio-alto."
              },
              {
                "order": 3,
                "instruction": "Colocar os filés sem sobrepor e selar até dourar; virar com cuidado e terminar o segundo lado."
              },
              {
                "order": 4,
                "instruction": "Finalizar com limão/ervas autorizados e retirar assim que o peixe lascar facilmente."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 4 min por lado"
            ],
            "source_temperature_reference": [
              "médio-alto"
            ],
            "texture_or_doneness_endpoint": [
              "opaco, úmido e lascando facilmente"
            ],
            "adaptation_guardrails": [
              "A fonte usa farinha e manteiga; omitir quando não constarem. Não é necessário lavar o peixe; apenas secar a superfície.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "grelhada",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-86C8B417AE"
          ]
        }
      }
    },
    "NEW-SS-FV10": {
      "id": "NEW-SS-FV10",
      "name": "Tilápia com chimichurri",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "grelhada; chimichurri aplicado ao final",
      "seasoning_text": "chimichurri",
      "seasoning_refs": [
        "T032"
      ],
      "source_ids": [
        "SRC-86C8B417AE"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.7,
        "best_rating_count": 860,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING010"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING010",
              "raw_state": "Filé de tilápia cru, sem pele, pronto para cozinhar",
              "yield_factor": 0.7,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Tilápia com chimichurri",
            "source_method_ids": [
              "PM-SRC-86C8B417AE"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira antiaderente ou pesada",
              "espátula de peixe",
              "papel-toalha"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Secar muito bem os filés e temperar os dois lados."
              },
              {
                "order": 2,
                "instruction": "Aquecer o azeite previsto em fogo médio-alto."
              },
              {
                "order": 3,
                "instruction": "Colocar os filés sem sobrepor e selar até dourar; virar com cuidado e terminar o segundo lado."
              },
              {
                "order": 4,
                "instruction": "Finalizar com limão/ervas autorizados e retirar assim que o peixe lascar facilmente."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 4 min por lado"
            ],
            "source_temperature_reference": [
              "médio-alto"
            ],
            "texture_or_doneness_endpoint": [
              "opaco, úmido e lascando facilmente"
            ],
            "adaptation_guardrails": [
              "A fonte usa farinha e manteiga; omitir quando não constarem. Não é necessário lavar o peixe; apenas secar a superfície.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "grelhada; chimichurri aplicado ao final",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-86C8B417AE"
          ]
        }
      }
    },
    "NEW-SS-PV01": {
      "id": "NEW-SS-PV01",
      "name": "Lombo suíno com limão, alho e alecrim",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "medalhões grelhados",
      "seasoning_text": "limão, alho e alecrim",
      "seasoning_refs": [
        "T021"
      ],
      "source_ids": [
        "SRC-14024CE8FA"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.3,
        "best_rating_count": 26,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING009"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING009",
              "raw_state": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
              "yield_factor": 0.64,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Lombo suíno com limão, alho e alecrim",
            "source_method_ids": [
              "PM-SRC-14024CE8FA"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "frigideira antiaderente",
              "pegador"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar azeite contabilizado, alecrim, alho, suco/raspas de limão e temperos; envolver os medalhões/fatias de porco."
              },
              {
                "order": 2,
                "instruction": "Marinar sob refrigeração por cerca de 30 min quando houver tempo."
              },
              {
                "order": 3,
                "instruction": "Aquecer bem a frigideira antiaderente, retirar excesso superficial de marinada e cozinhar a carne dos dois lados."
              },
              {
                "order": 4,
                "instruction": "Retirar ao atingir o ponto de cocção e deixar repousar antes de porcionar pelo peso cru indicado antes da cocção."
              }
            ],
            "source_time_reference": [
              "fonte: 3–4 min de cada lado para pork steaks; marinada opcional ~30 min"
            ],
            "source_temperature_reference": [
              "frigideira bem quente"
            ],
            "texture_or_doneness_endpoint": [
              "dourado por fora e cozido; repousado antes de pesar/porcionar"
            ],
            "adaptation_guardrails": [
              "Grão-de-bico, cebola e salada da fonte não entram na receita de lombo; o tempo depende da espessura do corte.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "medalhões grelhados",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-14024CE8FA"
          ]
        }
      }
    },
    "NEW-SS-PV02": {
      "id": "NEW-SS-PV02",
      "name": "Lombo suíno com mostarda e ervas",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "medalhões grelhados",
      "seasoning_text": "mostarda e ervas",
      "seasoning_refs": [
        "T004"
      ],
      "source_ids": [
        "SRC-2227CA24C9"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 47,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING009"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING009",
              "raw_state": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
              "yield_factor": 0.64,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Lombo suíno com mostarda e ervas",
            "source_method_ids": [
              "PM-SRC-2227CA24C9"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira larga",
              "espátula ou pinça"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar os cogumelos em lotes até a água liberada evaporar e reservar."
              },
              {
                "order": 2,
                "instruction": "Selar o lombo em pedaços/tiras na gordura contabilizada; a fonte usa 5–8 min para cubos de 1 cm, mas a adaptação deve seguir o tamanho real do corte."
              },
              {
                "order": 3,
                "instruction": "Cozinhar a cebola/aromáticos autorizados em fogo baixo-médio até amaciar e começar a caramelizar; na fonte, cerca de 10–12 min."
              },
              {
                "order": 4,
                "instruction": "Reunir carne e cogumelos, adicionar páprica, mostarda e somente o líquido autorizado, raspando o fundo da panela."
              },
              {
                "order": 5,
                "instruction": "Incorporar o iogurte/lácteo zero lactose previsto no final, em calor suave, apenas até aquecer e homogeneizar."
              }
            ],
            "source_time_reference": [
              "fonte: porco 5–8 min; cebola 10–12 min; lácteo final ~2 min"
            ],
            "source_temperature_reference": [
              "médio para cogumelos/carne; baixo-médio para cebola; suave após o lácteo"
            ],
            "texture_or_doneness_endpoint": [
              "carne cozida sem ressecar, cogumelos dourados e molho cremoso sem separar"
            ],
            "adaptation_guardrails": [
              "Usar iogurte/lácteo zero lactose apenas se estiver na porção. Não ferver vigorosamente após incorporá-lo.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "medalhões grelhados",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-2227CA24C9"
          ]
        }
      }
    },
    "NEW-SS-PV03": {
      "id": "NEW-SS-PV03",
      "name": "Lombo suíno cajun",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "grelhado/air fryer",
      "seasoning_text": "cajun",
      "seasoning_refs": [
        "T098"
      ],
      "source_ids": [
        "SRC-2227CA24C9"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 47,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING009"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING009",
              "raw_state": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
              "yield_factor": 0.64,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Lombo suíno cajun",
            "source_method_ids": [
              "PM-SRC-2227CA24C9"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira larga",
              "espátula ou pinça"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar os cogumelos em lotes até a água liberada evaporar e reservar."
              },
              {
                "order": 2,
                "instruction": "Selar o lombo em pedaços/tiras na gordura contabilizada; a fonte usa 5–8 min para cubos de 1 cm, mas a adaptação deve seguir o tamanho real do corte."
              },
              {
                "order": 3,
                "instruction": "Cozinhar a cebola/aromáticos autorizados em fogo baixo-médio até amaciar e começar a caramelizar; na fonte, cerca de 10–12 min."
              },
              {
                "order": 4,
                "instruction": "Reunir carne e cogumelos, adicionar páprica, mostarda e somente o líquido autorizado, raspando o fundo da panela."
              },
              {
                "order": 5,
                "instruction": "Incorporar o iogurte/lácteo zero lactose previsto no final, em calor suave, apenas até aquecer e homogeneizar."
              }
            ],
            "source_time_reference": [
              "fonte: porco 5–8 min; cebola 10–12 min; lácteo final ~2 min"
            ],
            "source_temperature_reference": [
              "médio para cogumelos/carne; baixo-médio para cebola; suave após o lácteo"
            ],
            "texture_or_doneness_endpoint": [
              "carne cozida sem ressecar, cogumelos dourados e molho cremoso sem separar"
            ],
            "adaptation_guardrails": [
              "Usar iogurte/lácteo zero lactose apenas se estiver na porção. Não ferver vigorosamente após incorporá-lo.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "grelhado/air fryer",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-2227CA24C9"
          ]
        }
      }
    },
    "NEW-SS-PV04": {
      "id": "NEW-SS-PV04",
      "name": "Lombo suíno ao za’atar",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "assado/grelhado",
      "seasoning_text": "za’atar e limão",
      "seasoning_refs": [
        "T102"
      ],
      "source_ids": [
        "SRC-2227CA24C9"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 47,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING009"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING009",
              "raw_state": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
              "yield_factor": 0.64,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Lombo suíno ao za’atar",
            "source_method_ids": [
              "PM-SRC-2227CA24C9"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira larga",
              "espátula ou pinça"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar os cogumelos em lotes até a água liberada evaporar e reservar."
              },
              {
                "order": 2,
                "instruction": "Selar o lombo em pedaços/tiras na gordura contabilizada; a fonte usa 5–8 min para cubos de 1 cm, mas a adaptação deve seguir o tamanho real do corte."
              },
              {
                "order": 3,
                "instruction": "Cozinhar a cebola/aromáticos autorizados em fogo baixo-médio até amaciar e começar a caramelizar; na fonte, cerca de 10–12 min."
              },
              {
                "order": 4,
                "instruction": "Reunir carne e cogumelos, adicionar páprica, mostarda e somente o líquido autorizado, raspando o fundo da panela."
              },
              {
                "order": 5,
                "instruction": "Incorporar o iogurte/lácteo zero lactose previsto no final, em calor suave, apenas até aquecer e homogeneizar."
              }
            ],
            "source_time_reference": [
              "fonte: porco 5–8 min; cebola 10–12 min; lácteo final ~2 min"
            ],
            "source_temperature_reference": [
              "médio para cogumelos/carne; baixo-médio para cebola; suave após o lácteo"
            ],
            "texture_or_doneness_endpoint": [
              "carne cozida sem ressecar, cogumelos dourados e molho cremoso sem separar"
            ],
            "adaptation_guardrails": [
              "Usar iogurte/lácteo zero lactose apenas se estiver na porção. Não ferver vigorosamente após incorporá-lo.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "assado/grelhado",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-2227CA24C9"
          ]
        }
      }
    },
    "NEW-SS-PV05": {
      "id": "NEW-SS-PV05",
      "name": "Almôndegas suínas com limão e erva-doce",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "assadas/douradas",
      "seasoning_text": "limão, erva-doce e pimenta",
      "seasoning_refs": [
        "T021"
      ],
      "source_ids": [
        "SRC-001A054ACD"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 3.9,
        "best_rating_count": 19,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING009"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING009",
              "raw_state": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
              "yield_factor": 0.64,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Almôndegas suínas com limão e erva-doce",
            "source_method_ids": [
              "PM-SRC-001A054ACD"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "frigideira com tampa",
              "espátula"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar carne suína crua moída, raspas de limão, sementes de erva-doce e temperos autorizados."
              },
              {
                "order": 2,
                "instruction": "Moldar em bolas uniformes."
              },
              {
                "order": 3,
                "instruction": "Dourar em fogo médio até formar cor em toda a superfície."
              },
              {
                "order": 4,
                "instruction": "Quando houver molho autorizado, terminar nele em fervura suave; na versão sem molho, concluir a cocção na frigideira/forno sem acrescentar ingredientes da fonte."
              }
            ],
            "source_time_reference": [
              "fonte: dourar ~5 min; depois ~10 min no molho (mais 5 min com kale na receita original)"
            ],
            "source_temperature_reference": [
              "fogo médio; fervura suave no molho"
            ],
            "texture_or_doneness_endpoint": [
              "douradas e cozidas no centro"
            ],
            "adaptation_guardrails": [
              "Tomate, kale, pinoli e acompanhamentos da fonte são omitidos na versão de lanche.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "assadas/douradas",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-001A054ACD"
          ]
        }
      }
    },
    "NEW-SS-PV06": {
      "id": "NEW-SS-PV06",
      "name": "Kofta suína mexicana adaptada",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "moldada e grelhada",
      "seasoning_text": "cominho, páprica e chilli",
      "seasoning_refs": [
        "T098"
      ],
      "source_ids": [
        "SRC-2F77203D66"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 148,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING009"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING009",
              "raw_state": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
              "yield_factor": 0.64,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Kofta suína mexicana adaptada",
            "source_method_ids": [
              "PM-SRC-2F77203D66"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "espetos metálicos",
              "chapa/griddle ou churrasqueira",
              "pinça"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar a carne crua moída com cominho, coentro, alho, hortelã e demais temperos autorizados até distribuir; evitar compactar excessivamente."
              },
              {
                "order": 2,
                "instruction": "Dividir e moldar em ovais/cilindros, espetar e pincelar somente a gordura autorizada."
              },
              {
                "order": 3,
                "instruction": "Aquecer bem a chapa e cozinhar sem tentar virar antes de a superfície selar."
              },
              {
                "order": 4,
                "instruction": "A fonte usa cerca de 3–4 min por lado; ajustar à espessura da adaptação. A gramagem desta página já deve ser pesada antes da cocção; não é necessário repesar para porcionar."
              }
            ],
            "source_time_reference": [
              "fonte: ~3–4 min por lado"
            ],
            "source_temperature_reference": [
              "chapa/churrasqueira bem quente"
            ],
            "texture_or_doneness_endpoint": [
              "superfície selada/dourada e centro cozido"
            ],
            "adaptation_guardrails": [
              "A fonte usa cordeiro; nas versões bovinas, preservar técnica/formato, mas usar apenas a carne prevista na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "moldada e grelhada",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-2F77203D66"
          ]
        }
      }
    },
    "NEW-SS-PV07": {
      "id": "NEW-SS-PV07",
      "name": "Lombo suíno com miso",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "marinado e grelhado",
      "seasoning_text": "miso e gengibre",
      "seasoning_refs": [
        "T012"
      ],
      "source_ids": [
        "SRC-58CC1ECA0E"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 30,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING009"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING009",
              "raw_state": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
              "yield_factor": 0.64,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Lombo suíno com miso",
            "source_method_ids": [
              "PM-SRC-58CC1ECA0E"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "saco ou recipiente para marinar",
              "frigideira pesada, chapa ou churrasqueira",
              "pinça"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Misturar o miso e aromáticos autorizados e cobrir uniformemente o bife."
              },
              {
                "order": 2,
                "instruction": "Marinar refrigerado; a fonte usa no mínimo 1 h e permite até 2 dias."
              },
              {
                "order": 3,
                "instruction": "Antes de selar, retirar o excesso de marinada superficial para reduzir queima."
              },
              {
                "order": 4,
                "instruction": "Aquecer muito bem a chapa/frigideira/churrasqueira e selar dos dois lados. A fonte usa cerca de 3 min por lado para malpassado ao ponto em bife semelhante."
              },
              {
                "order": 5,
                "instruction": "Descansar antes de fatiar contra a fibra."
              }
            ],
            "source_time_reference": [
              "fonte: marinada ≥1 h (até 2 dias); ~3 min por lado para medium-rare; descanso ~1 min"
            ],
            "source_temperature_reference": [
              "superfície muito quente"
            ],
            "texture_or_doneness_endpoint": [
              "crosta bem selada e ponto interno desejado"
            ],
            "adaptation_guardrails": [
              "Não usar açúcar, saquê/xerez ou acompanhamentos da fonte se não estiverem autorizados. Tempo de chapa depende da espessura e do corte real.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "marinado e grelhado",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-58CC1ECA0E"
          ]
        }
      }
    },
    "NEW-SS-PV08": {
      "id": "NEW-SS-PV08",
      "name": "Lombo suíno com chimichurri",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "grelhado; chimichurri no final",
      "seasoning_text": "chimichurri",
      "seasoning_refs": [
        "T032"
      ],
      "source_ids": [
        "SRC-AEF5B9DDD4"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.6,
        "best_rating_count": 27,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING009"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING009",
              "raw_state": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
              "yield_factor": 0.64,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Lombo suíno com chimichurri",
            "source_method_ids": [
              "PM-SRC-AEF5B9DDD4"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "processador ou faca",
              "tigela",
              "chapa ou frigideira",
              "pinça"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Picar/processar ervas, alho e aromáticos autorizados do chimichurri e combinar com o ácido e a gordura contabilizada até virar molho rústico."
              },
              {
                "order": 2,
                "instruction": "Secar/temperar o bife e esfregar somente a gordura autorizada na superfície."
              },
              {
                "order": 3,
                "instruction": "Selar em chapa/frigideira quente; a fonte usa 2–3 min por lado para bifes de 125 g, mas o tempo deve seguir espessura e ponto."
              },
              {
                "order": 4,
                "instruction": "Descansar alguns minutos antes de fatiar e só então aplicar o chimichurri."
              }
            ],
            "source_time_reference": [
              "fonte: 2–3 min por lado; descanso de alguns minutos"
            ],
            "source_temperature_reference": [
              "chapa/frigideira quente"
            ],
            "texture_or_doneness_endpoint": [
              "crosta externa, ponto interno desejado e sucos redistribuídos após descanso"
            ],
            "adaptation_guardrails": [
              "Batata/fritas e salada da fonte não são parte automática da adaptação.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "grelhado; chimichurri no final",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-AEF5B9DDD4"
          ]
        }
      }
    },
    "NEW-SS-PV09": {
      "id": "NEW-SS-PV09",
      "name": "Lombo suíno com pimenta e alho",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "chapado em tiras",
      "seasoning_text": "pimenta e alho",
      "seasoning_refs": [
        "T088"
      ],
      "source_ids": [
        "SRC-2227CA24C9"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 47,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING009"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING009",
              "raw_state": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
              "yield_factor": 0.64,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "high",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Lombo suíno com pimenta e alho",
            "source_method_ids": [
              "PM-SRC-2227CA24C9"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "frigideira larga",
              "espátula ou pinça"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Dourar os cogumelos em lotes até a água liberada evaporar e reservar."
              },
              {
                "order": 2,
                "instruction": "Selar o lombo em pedaços/tiras na gordura contabilizada; a fonte usa 5–8 min para cubos de 1 cm, mas a adaptação deve seguir o tamanho real do corte."
              },
              {
                "order": 3,
                "instruction": "Cozinhar a cebola/aromáticos autorizados em fogo baixo-médio até amaciar e começar a caramelizar; na fonte, cerca de 10–12 min."
              },
              {
                "order": 4,
                "instruction": "Reunir carne e cogumelos, adicionar páprica, mostarda e somente o líquido autorizado, raspando o fundo da panela."
              },
              {
                "order": 5,
                "instruction": "Incorporar o iogurte/lácteo zero lactose previsto no final, em calor suave, apenas até aquecer e homogeneizar."
              }
            ],
            "source_time_reference": [
              "fonte: porco 5–8 min; cebola 10–12 min; lácteo final ~2 min"
            ],
            "source_temperature_reference": [
              "médio para cogumelos/carne; baixo-médio para cebola; suave após o lácteo"
            ],
            "texture_or_doneness_endpoint": [
              "carne cozida sem ressecar, cogumelos dourados e molho cremoso sem separar"
            ],
            "adaptation_guardrails": [
              "Usar iogurte/lácteo zero lactose apenas se estiver na porção. Não ferver vigorosamente após incorporá-lo.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "chapado em tiras",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-2227CA24C9"
          ]
        }
      }
    },
    "NEW-SS-EV01": {
      "id": "NEW-SS-EV01",
      "name": "Omelette roll-up proteico",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "omelete fina enrolada",
      "seasoning_text": "sal, pimenta e ervas",
      "seasoning_refs": [
        "T052"
      ],
      "source_ids": [
        "SRC-0FB2713DE2"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.5,
        "best_rating_count": 25,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelette roll-up proteico",
            "source_method_ids": [
              "PM-SRC-0FB2713DE2"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela",
              "garfo/batedor",
              "frigideira média antiaderente",
              "tábua"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater o ovo com pequena quantidade de água somente se compatível com a porção."
              },
              {
                "order": 2,
                "instruction": "Aquecer a frigideira antiaderente com apenas a gordura prevista."
              },
              {
                "order": 3,
                "instruction": "Adicionar o ovo e girar para cobrir a base como uma panqueca; cozinhar até firmar, sem necessidade de virar."
              },
              {
                "order": 4,
                "instruction": "Deslizar para uma tábua, adicionar apenas o recheio/molho autorizado e enrolar ainda flexível."
              }
            ],
            "source_time_reference": [
              "fonte: ~10 min de cocção total da receita; lâmina de ovo cozinha em poucos minutos"
            ],
            "source_temperature_reference": [
              "fogo moderado"
            ],
            "texture_or_doneness_endpoint": [
              "lâmina fina de omelete totalmente firme, mas flexível para enrolar"
            ],
            "adaptation_guardrails": [
              "Salsa e coentro da fonte só entram se autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "omelete fina enrolada",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-0FB2713DE2"
          ]
        }
      }
    },
    "NEW-SS-EV02": {
      "id": "NEW-SS-EV02",
      "name": "Egg bites proteicos",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "assados em moldes",
      "seasoning_text": "sal, pimenta e ervas",
      "seasoning_refs": [
        "T052"
      ],
      "source_ids": [
        "SRC-7C7CF77559"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 0,
        "best_rating": null,
        "best_rating_count": null,
        "rating_status": "no_numeric_rating_on_referenced_source"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Egg bites proteicos",
            "source_method_ids": [
              "PM-SRC-7C7CF77559"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "liquidificador",
              "forma de muffin/silicone",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Bater ovos/claras com o queijo e temperos efetivamente previstos até a mistura ficar homogênea."
              },
              {
                "order": 2,
                "instruction": "Distribuir qualquer recheio já cozido autorizado nas cavidades e completar com a mistura de ovos."
              },
              {
                "order": 3,
                "instruction": "Assar até os bites inflarem e o centro firmar; deixar repousar brevemente antes de desenformar."
              }
            ],
            "source_time_reference": [
              "fonte: cerca de 25 min"
            ],
            "source_temperature_reference": [
              "350°F / ~177°C"
            ],
            "texture_or_doneness_endpoint": [
              "inflados e firmes no centro"
            ],
            "adaptation_guardrails": [
              "A fonte usa cottage cheese, cheddar e sausage; substituir/omitir conforme a porção. Frango, quando presente na nossa versão, entra já cozido como recheio.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "assados em moldes",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-7C7CF77559"
          ]
        }
      }
    },
    "NEW-SS-EV03": {
      "id": "NEW-SS-EV03",
      "name": "Omelete na air fryer proteico",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "air fryer em ramequim",
      "seasoning_text": "sal e pimenta",
      "seasoning_refs": [
        "T052"
      ],
      "source_ids": [
        "SRC-A07C37A0EF"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 5.0,
        "best_rating_count": 7,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Omelete na air fryer proteico",
            "source_method_ids": [
              "PM-SRC-A07C37A0EF"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "air fryer",
              "recipiente baixo antiaderente resistente ao calor",
              "batedor"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Pré-aquecer a air fryer com o recipiente dentro."
              },
              {
                "order": 2,
                "instruction": "Bater ovos e misturar somente os recheios autorizados."
              },
              {
                "order": 3,
                "instruction": "Adicionar a gordura prevista ao recipiente, despejar a mistura e cozinhar até inflar e dourar."
              }
            ],
            "source_time_reference": [
              "8–10 min"
            ],
            "source_temperature_reference": [
              "180°C"
            ],
            "texture_or_doneness_endpoint": [
              "inflada, dourada e recém-firme"
            ],
            "adaptation_guardrails": [
              "A quantidade de gordura é a da porção, não a da receita-fonte.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "air fryer em ramequim",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-A07C37A0EF"
          ]
        }
      }
    },
    "NEW-SS-EV04": {
      "id": "NEW-SS-EV04",
      "name": "Quiche sem massa proteica",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "assada em porção individual",
      "seasoning_text": "noz-moscada, sal e pimenta",
      "seasoning_refs": [
        "T052"
      ],
      "source_ids": [
        "SRC-73EC562C77"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.6,
        "best_rating_count": 49,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Quiche sem massa proteica",
            "source_method_ids": [
              "PM-SRC-73EC562C77"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "forma/ramequim",
              "frigideira",
              "batedor",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Pré-cozinhar recheios úmidos para retirar excesso de água."
              },
              {
                "order": 2,
                "instruction": "Bater ovos com os lácteos/queijo que realmente constem na adaptação e temperar."
              },
              {
                "order": 3,
                "instruction": "Combinar recheio e ovos, colocar na forma e finalizar com o queijo autorizado."
              },
              {
                "order": 4,
                "instruction": "Assar até dourar, mantendo apenas leve tremor central antes do descanso."
              }
            ],
            "source_time_reference": [
              "25–30 min de forno após o pré-preparo"
            ],
            "source_temperature_reference": [
              "180°C / 160°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "dourada com leve tremor central que termina de firmar no descanso"
            ],
            "adaptation_guardrails": [
              "A fonte usa creme/pancetta; omitir quando não constarem na porção.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "assada em porção individual",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-73EC562C77"
          ]
        }
      }
    },
    "NEW-SS-EV05": {
      "id": "NEW-SS-EV05",
      "name": "Muffins de omelete proteicos",
      "category": "afternoon_snack_savory",
      "origin": "generated_v3",
      "method_overview": "assados em forminhas",
      "seasoning_text": "garam masala suave ou ervas",
      "seasoning_refs": [
        "T099"
      ],
      "source_ids": [
        "SRC-55FF831328"
      ],
      "adaptation_notes": "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos. Óleo culinário é medido e contabilizado. Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas.",
      "trace_ingredients": [],
      "source_quality": {
        "has_source": true,
        "source_count": 1,
        "rated_source_count": 1,
        "best_rating": 4.3,
        "best_rating_count": 14,
        "rating_status": "rated_source_available"
      },
      "preparation": {
        "version": "1.1",
        "detail_level": "operational_source_grounded",
        "portioning_note": "Usar as gramagens exatas de cada recipe_use.portion da alternativa escolhida. Os passos descrevem técnica e ordem; não substituem as gramagens da alternativa. Quando a técnica começa com proteína crua mas o ingrediente nutricional está definido como cozido, preparar em lote e pesar a porção crua antes da cocção.",
        "ingredient_authority": "Ingredientes autorizados = recipe_use.portion.ingredients + seasoning_text/seasoning_refs + trace_ingredients. Ingredientes presentes apenas na fonte original NÃO são autorizados automaticamente.",
        "weight_basis": {
          "primary_measurement_rule": "Todas as gramagens operacionais de ingredientes que sofrem cocção são dadas no estado cru/pronto para cozinhar. Itens sem conversão são pesados como comprados/prontos para uso.",
          "raw_weight_ingredient_ids": [
            "ING001",
            "ING006",
            "ING031"
          ],
          "as_purchased_weight_ingredient_ids": [
            "ING004",
            "ING028"
          ],
          "cooked_weight_ingredient_ids": [],
          "raw_yield_notes": [
            {
              "ingredient_id": "ING006",
              "raw_state": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
              "yield_factor": 0.73,
              "yield_source_id": "SRC-YIELD-USDA-MEAT",
              "quality": "medium_high_proxy",
              "instruction": "Pesar a gramagem crua indicada na página da refeição antes de cozinhar. O fator de rendimento serve apenas para manter equivalência com a base nutricional histórica; não é necessário pesar novamente depois de pronto."
            }
          ]
        },
        "components": [
          {
            "name": "Muffins de omelete proteicos",
            "source_method_ids": [
              "PM-SRC-55FF831328"
            ],
            "grounding_level": "direct_source_method",
            "equipment": [
              "tigela/jarra",
              "batedor",
              "ramequins/formas",
              "forno"
            ],
            "steps": [
              {
                "order": 1,
                "instruction": "Preparar os vegetais/aromáticos autorizados e remover excesso de água quando necessário."
              },
              {
                "order": 2,
                "instruction": "Bater ovos com especiarias e demais recheios autorizados."
              },
              {
                "order": 3,
                "instruction": "Distribuir nos ramequins/formas, sem adicionar ingredientes ausentes da adaptação."
              },
              {
                "order": 4,
                "instruction": "Assar até crescer e firmar; a fonte usa 220°C/200°C ventilado por 20–25 min."
              }
            ],
            "source_time_reference": [
              "fonte: 20–25 min"
            ],
            "source_temperature_reference": [
              "220°C / 200°C ventilado"
            ],
            "texture_or_doneness_endpoint": [
              "muffins inflados e firmes no centro"
            ],
            "adaptation_guardrails": [
              "A fonte contém courgette/abobrinha; ela é proibida nesta adaptação. Feta/ervilhas entram somente se autorizados.",
              "Não adicionar ingredientes da receita-fonte que não estejam na porção da alternativa, em seasoning_text/seasoning_refs ou em trace_ingredients."
            ]
          }
        ],
        "assembly_and_storage_notes": [],
        "adaptation_application": [
          "Porção reescalada ao alvo do lanche; molhos açucarados, pães e acompanhamentos amiláceos foram omitidos.",
          "Óleo culinário é medido e contabilizado.",
          "Quando a referência principal funciona como técnica-base (por exemplo, grelhar tilápia ou frango), o perfil de sabor específico também é sustentado pelos seasoning_refs; isso não representa um cruzamento cartesiano, pois apenas combinações culinariamente compatíveis foram curadas."
        ],
        "original_method_overview": "assados em forminhas",
        "source_method_coverage": {
          "total_sources": 1,
          "direct_method_sources": 1,
          "source_family_or_overview_sources": 0,
          "existing_overview_only_sources": 0,
          "all_source_method_ids": [
            "PM-SRC-55FF831328"
          ]
        }
      }
    }
  },
  "meal_options": {
    "breakfast": [
      {
        "id": "B01",
        "name": "Omelete clássica de queijo + frango churrasco de limão e alho",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 172.6,
                  "macros": {
                    "kcal": 194.0,
                    "protein_g": 39.4,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 126.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 126.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 13.0,
                  "macros": {
                    "kcal": 117.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 13.0
                  },
                  "nutrition_basis_grams": 13.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 492.0,
                "protein_g": 53.7,
                "carbs_g": 2.4,
                "fat_g": 29.6
              }
            }
          }
        ],
        "total": {
          "kcal": 492.0,
          "protein_g": 53.7,
          "carbs_g": 2.4,
          "fat_g": 29.6
        },
        "delta_vs_target": {
          "kcal": 4.0,
          "protein_g": 0.02,
          "carbs_g": 0.31,
          "fat_g": 0.28
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B02",
        "name": "Omelete clássica de queijo + frango ao limão e tomilho",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 172.6,
                  "macros": {
                    "kcal": 194.0,
                    "protein_g": 39.4,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 126.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 126.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 13.0,
                  "macros": {
                    "kcal": 117.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 13.0
                  },
                  "nutrition_basis_grams": 13.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 492.0,
                "protein_g": 53.7,
                "carbs_g": 2.4,
                "fat_g": 29.6
              }
            }
          }
        ],
        "total": {
          "kcal": 492.0,
          "protein_g": 53.7,
          "carbs_g": 2.4,
          "fat_g": 29.6
        },
        "delta_vs_target": {
          "kcal": 4.0,
          "protein_g": 0.02,
          "carbs_g": 0.31,
          "fat_g": 0.28
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B03",
        "name": "Omelete clássica de queijo + frango jerk",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 172.6,
                  "macros": {
                    "kcal": 194.0,
                    "protein_g": 39.4,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 126.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 126.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 13.0,
                  "macros": {
                    "kcal": 117.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 13.0
                  },
                  "nutrition_basis_grams": 13.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 492.0,
                "protein_g": 53.7,
                "carbs_g": 2.4,
                "fat_g": 29.6
              }
            }
          }
        ],
        "total": {
          "kcal": 492.0,
          "protein_g": 53.7,
          "carbs_g": 2.4,
          "fat_g": 29.6
        },
        "delta_vs_target": {
          "kcal": 4.0,
          "protein_g": 0.02,
          "carbs_g": 0.31,
          "fat_g": 0.28
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B04",
        "name": "Omelete clássica de queijo + frango ao iogurte e limão",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.4,
                    "carbs_g": 0.2,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 486.0,
                "protein_g": 53.8,
                "carbs_g": 2.6,
                "fat_g": 28.9
              }
            }
          }
        ],
        "total": {
          "kcal": 486.0,
          "protein_g": 53.8,
          "carbs_g": 2.6,
          "fat_g": 28.9
        },
        "delta_vs_target": {
          "kcal": -2.0,
          "protein_g": 0.12,
          "carbs_g": 0.51,
          "fat_g": -0.42
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B05",
        "name": "Omelete grega de tomate e cebola + frango ao limão e orégano",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.6,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.5,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 486.0,
                "protein_g": 53.7,
                "carbs_g": 3.5,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 486.0,
          "protein_g": 53.7,
          "carbs_g": 3.5,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -2.0,
          "protein_g": 0.02,
          "carbs_g": 1.41,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B06",
        "name": "Omelete grega de tomate e cebola + frango souvlaki",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.6,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.5,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 486.0,
                "protein_g": 53.7,
                "carbs_g": 3.5,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 486.0,
          "protein_g": 53.7,
          "carbs_g": 3.5,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -2.0,
          "protein_g": 0.02,
          "carbs_g": 1.41,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B07",
        "name": "Omelete grega de tomate e cebola + frango ao iogurte e limão",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 168.5,
                  "macros": {
                    "kcal": 189.0,
                    "protein_g": 38.5,
                    "carbs_g": 0.0,
                    "fat_g": 3.9
                  },
                  "nutrition_basis_grams": 123.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 123.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.4,
                    "carbs_g": 0.2,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.6,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.5,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 488.0,
                "protein_g": 53.5,
                "carbs_g": 3.7,
                "fat_g": 28.8
              }
            }
          }
        ],
        "total": {
          "kcal": 488.0,
          "protein_g": 53.5,
          "carbs_g": 3.7,
          "fat_g": 28.8
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.18,
          "carbs_g": 1.61,
          "fat_g": -0.52
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B08",
        "name": "Omelete grega de tomate e cebola + paillard de frango com limão e ervas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.6,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.5,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 486.0,
                "protein_g": 53.7,
                "carbs_g": 3.5,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 486.0,
          "protein_g": 53.7,
          "carbs_g": 3.5,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -2.0,
          "protein_g": 0.02,
          "carbs_g": 1.41,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B09",
        "name": "Omelete de cogumelos e manjericão + paillard de frango com limão e ervas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 168.5,
                  "macros": {
                    "kcal": 189.0,
                    "protein_g": 38.5,
                    "carbs_g": 0.0,
                    "fat_g": 3.9
                  },
                  "nutrition_basis_grams": 123.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 123.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 56.8,
                  "macros": {
                    "kcal": 10.0,
                    "protein_g": 0.7,
                    "carbs_g": 1.1,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 25.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 25.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 488.0,
                "protein_g": 53.5,
                "carbs_g": 3.5,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 488.0,
          "protein_g": 53.5,
          "carbs_g": 3.5,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.18,
          "carbs_g": 1.41,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B10",
        "name": "Omelete de cogumelos e manjericão + frango gyros",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 167.1,
                  "macros": {
                    "kcal": 188.0,
                    "protein_g": 38.2,
                    "carbs_g": 0.0,
                    "fat_g": 3.9
                  },
                  "nutrition_basis_grams": 122.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 122.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.1,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 56.8,
                  "macros": {
                    "kcal": 10.0,
                    "protein_g": 0.7,
                    "carbs_g": 1.1,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 25.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 25.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 490.0,
                "protein_g": 53.4,
                "carbs_g": 3.6,
                "fat_g": 28.8
              }
            }
          }
        ],
        "total": {
          "kcal": 490.0,
          "protein_g": 53.4,
          "carbs_g": 3.6,
          "fat_g": 28.8
        },
        "delta_vs_target": {
          "kcal": 2.0,
          "protein_g": -0.28,
          "carbs_g": 1.51,
          "fat_g": -0.52
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B11",
        "name": "Omelete de cogumelos e manjericão + frango churrasco de limão e alho",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 168.5,
                  "macros": {
                    "kcal": 189.0,
                    "protein_g": 38.5,
                    "carbs_g": 0.0,
                    "fat_g": 3.9
                  },
                  "nutrition_basis_grams": 123.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 123.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 56.8,
                  "macros": {
                    "kcal": 10.0,
                    "protein_g": 0.7,
                    "carbs_g": 1.1,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 25.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 25.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 488.0,
                "protein_g": 53.5,
                "carbs_g": 3.5,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 488.0,
          "protein_g": 53.5,
          "carbs_g": 3.5,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.18,
          "carbs_g": 1.41,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B12",
        "name": "Omelete de cogumelos e manjericão + frango ao limão e tomilho",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 168.5,
                  "macros": {
                    "kcal": 189.0,
                    "protein_g": 38.5,
                    "carbs_g": 0.0,
                    "fat_g": 3.9
                  },
                  "nutrition_basis_grams": 123.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 123.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 56.8,
                  "macros": {
                    "kcal": 10.0,
                    "protein_g": 0.7,
                    "carbs_g": 1.1,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 25.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 25.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 488.0,
                "protein_g": 53.5,
                "carbs_g": 3.5,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 488.0,
          "protein_g": 53.5,
          "carbs_g": 3.5,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.18,
          "carbs_g": 1.41,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B13",
        "name": "Omelete de tomate e ervas + frango ao limão e tomilho",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B13",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 485.0,
                "protein_g": 53.6,
                "carbs_g": 3.2,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 485.0,
          "protein_g": 53.6,
          "carbs_g": 3.2,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -3.0,
          "protein_g": -0.08,
          "carbs_g": 1.11,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B14",
        "name": "Omelete de tomate e ervas + frango assado com alecrim e limão",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B14",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 485.0,
                "protein_g": 53.6,
                "carbs_g": 3.2,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 485.0,
          "protein_g": 53.6,
          "carbs_g": 3.2,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -3.0,
          "protein_g": -0.08,
          "carbs_g": 1.11,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B15",
        "name": "Omelete de tomate e ervas + frango ao limão e orégano",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B15",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 485.0,
                "protein_g": 53.6,
                "carbs_g": 3.2,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 485.0,
          "protein_g": 53.6,
          "carbs_g": 3.2,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -3.0,
          "protein_g": -0.08,
          "carbs_g": 1.11,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B16",
        "name": "Omelete de tomate e ervas + frango souvlaki",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B16",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 485.0,
                "protein_g": 53.6,
                "carbs_g": 3.2,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 485.0,
          "protein_g": 53.6,
          "carbs_g": 3.2,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -3.0,
          "protein_g": -0.08,
          "carbs_g": 1.11,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B17",
        "name": "Omelete de tomate em estilo panqueca + frango souvlaki",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B17",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.5,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 487.0,
                "protein_g": 53.7,
                "carbs_g": 3.7,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 487.0,
          "protein_g": 53.7,
          "carbs_g": 3.7,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -1.0,
          "protein_g": 0.02,
          "carbs_g": 1.61,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B18",
        "name": "Omelete de tomate em estilo panqueca + frango ao iogurte e limão",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B18",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 168.5,
                  "macros": {
                    "kcal": 189.0,
                    "protein_g": 38.5,
                    "carbs_g": 0.0,
                    "fat_g": 3.9
                  },
                  "nutrition_basis_grams": 123.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 123.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.4,
                    "carbs_g": 0.2,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.5,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 489.0,
                "protein_g": 53.5,
                "carbs_g": 3.9,
                "fat_g": 28.8
              }
            }
          }
        ],
        "total": {
          "kcal": 489.0,
          "protein_g": 53.5,
          "carbs_g": 3.9,
          "fat_g": 28.8
        },
        "delta_vs_target": {
          "kcal": 1.0,
          "protein_g": -0.18,
          "carbs_g": 1.81,
          "fat_g": -0.52
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B19",
        "name": "Omelete de tomate em estilo panqueca + paillard de frango com limão e ervas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B19",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.5,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 487.0,
                "protein_g": 53.7,
                "carbs_g": 3.7,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 487.0,
          "protein_g": 53.7,
          "carbs_g": 3.7,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -1.0,
          "protein_g": 0.02,
          "carbs_g": 1.61,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B20",
        "name": "Omelete de tomate em estilo panqueca + frango gyros",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B20",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 169.9,
                  "macros": {
                    "kcal": 191.0,
                    "protein_g": 38.8,
                    "carbs_g": 0.0,
                    "fat_g": 3.9
                  },
                  "nutrition_basis_grams": 124.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 124.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.1,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.5,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 489.0,
                "protein_g": 53.6,
                "carbs_g": 3.8,
                "fat_g": 28.7
              }
            }
          }
        ],
        "total": {
          "kcal": 489.0,
          "protein_g": 53.6,
          "carbs_g": 3.8,
          "fat_g": 28.7
        },
        "delta_vs_target": {
          "kcal": 1.0,
          "protein_g": -0.08,
          "carbs_g": 1.71,
          "fat_g": -0.62
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B21",
        "name": "Frittata masala com salsa de abacate + frango jerk",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B21",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.4,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 3.0,
                  "macros": {
                    "kcal": 1.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.3,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 3.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING026",
                  "ingredient_name": "Abacate cru",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.3,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 488.0,
                "protein_g": 53.7,
                "carbs_g": 3.4,
                "fat_g": 28.9
              }
            }
          }
        ],
        "total": {
          "kcal": 488.0,
          "protein_g": 53.7,
          "carbs_g": 3.4,
          "fat_g": 28.9
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.02,
          "carbs_g": 1.31,
          "fat_g": -0.42
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B22",
        "name": "Frittata masala com salsa de abacate + frango tikka",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B22",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 169.9,
                  "macros": {
                    "kcal": 191.0,
                    "protein_g": 38.8,
                    "carbs_g": 0.0,
                    "fat_g": 3.9
                  },
                  "nutrition_basis_grams": 124.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 124.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.3,
                    "carbs_g": 0.2,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.4,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 3.0,
                  "macros": {
                    "kcal": 1.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.3,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 3.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING026",
                  "ingredient_name": "Abacate cru",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.3,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 491.0,
                "protein_g": 53.7,
                "carbs_g": 3.6,
                "fat_g": 29.0
              }
            }
          }
        ],
        "total": {
          "kcal": 491.0,
          "protein_g": 53.7,
          "carbs_g": 3.6,
          "fat_g": 29.0
        },
        "delta_vs_target": {
          "kcal": 3.0,
          "protein_g": 0.02,
          "carbs_g": 1.51,
          "fat_g": -0.32
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B23",
        "name": "Frittata masala com salsa de abacate + frango com limão e five-spice",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B23",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.4,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 3.0,
                  "macros": {
                    "kcal": 1.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.3,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 3.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING026",
                  "ingredient_name": "Abacate cru",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.3,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 488.0,
                "protein_g": 53.7,
                "carbs_g": 3.4,
                "fat_g": 28.9
              }
            }
          }
        ],
        "total": {
          "kcal": 488.0,
          "protein_g": 53.7,
          "carbs_g": 3.4,
          "fat_g": 28.9
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.02,
          "carbs_g": 1.31,
          "fat_g": -0.42
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B24",
        "name": "Frittata masala com salsa de abacate + frango curry caseiro",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B24",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 169.9,
                  "macros": {
                    "kcal": 191.0,
                    "protein_g": 38.8,
                    "carbs_g": 0.0,
                    "fat_g": 3.9
                  },
                  "nutrition_basis_grams": 124.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 124.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.7,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING026",
                  "ingredient_name": "Abacate cru",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.3,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 491.0,
                "protein_g": 53.5,
                "carbs_g": 4.2,
                "fat_g": 28.8
              }
            }
          }
        ],
        "total": {
          "kcal": 491.0,
          "protein_g": 53.5,
          "carbs_g": 4.2,
          "fat_g": 28.8
        },
        "delta_vs_target": {
          "kcal": 3.0,
          "protein_g": -0.18,
          "carbs_g": 2.11,
          "fat_g": -0.52
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B25",
        "name": "Frittata de tomate e queijo + frango assado com alecrim e limão",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B25",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 485.0,
                "protein_g": 53.6,
                "carbs_g": 3.2,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 485.0,
          "protein_g": 53.6,
          "carbs_g": 3.2,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -3.0,
          "protein_g": -0.08,
          "carbs_g": 1.11,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B26",
        "name": "Frittata de tomate e queijo + frango ao limão e orégano",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B26",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 485.0,
                "protein_g": 53.6,
                "carbs_g": 3.2,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 485.0,
          "protein_g": 53.6,
          "carbs_g": 3.2,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -3.0,
          "protein_g": -0.08,
          "carbs_g": 1.11,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B27",
        "name": "Frittata de tomate e queijo + frango souvlaki",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B27",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 485.0,
                "protein_g": 53.6,
                "carbs_g": 3.2,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 485.0,
          "protein_g": 53.6,
          "carbs_g": 3.2,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -3.0,
          "protein_g": -0.08,
          "carbs_g": 1.11,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B28",
        "name": "Frittata de tomate e queijo + frango ao iogurte e limão",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B28",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 169.9,
                  "macros": {
                    "kcal": 191.0,
                    "protein_g": 38.8,
                    "carbs_g": 0.0,
                    "fat_g": 3.9
                  },
                  "nutrition_basis_grams": 124.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 124.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.4,
                    "carbs_g": 0.2,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 489.0,
                "protein_g": 53.7,
                "carbs_g": 3.4,
                "fat_g": 28.8
              }
            }
          }
        ],
        "total": {
          "kcal": 489.0,
          "protein_g": 53.7,
          "carbs_g": 3.4,
          "fat_g": 28.8
        },
        "delta_vs_target": {
          "kcal": 1.0,
          "protein_g": 0.02,
          "carbs_g": 1.31,
          "fat_g": -0.52
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B29",
        "name": "Frittata de queijo + frango assado com alecrim e limão",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B29",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 172.6,
                  "macros": {
                    "kcal": 194.0,
                    "protein_g": 39.4,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 126.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 126.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 13.0,
                  "macros": {
                    "kcal": 117.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 13.0
                  },
                  "nutrition_basis_grams": 13.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 492.0,
                "protein_g": 53.7,
                "carbs_g": 2.4,
                "fat_g": 29.6
              }
            }
          }
        ],
        "total": {
          "kcal": 492.0,
          "protein_g": 53.7,
          "carbs_g": 2.4,
          "fat_g": 29.6
        },
        "delta_vs_target": {
          "kcal": 4.0,
          "protein_g": 0.02,
          "carbs_g": 0.31,
          "fat_g": 0.28
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B30",
        "name": "Frittata de queijo + frango churrasco de limão e alho",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B30",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 172.6,
                  "macros": {
                    "kcal": 194.0,
                    "protein_g": 39.4,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 126.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 126.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 13.0,
                  "macros": {
                    "kcal": 117.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 13.0
                  },
                  "nutrition_basis_grams": 13.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 492.0,
                "protein_g": 53.7,
                "carbs_g": 2.4,
                "fat_g": 29.6
              }
            }
          }
        ],
        "total": {
          "kcal": 492.0,
          "protein_g": 53.7,
          "carbs_g": 2.4,
          "fat_g": 29.6
        },
        "delta_vs_target": {
          "kcal": 4.0,
          "protein_g": 0.02,
          "carbs_g": 0.31,
          "fat_g": 0.28
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B31",
        "name": "Frittata de queijo + frango ao limão e tomilho",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B31",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 172.6,
                  "macros": {
                    "kcal": 194.0,
                    "protein_g": 39.4,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 126.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 126.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 13.0,
                  "macros": {
                    "kcal": 117.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 13.0
                  },
                  "nutrition_basis_grams": 13.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 492.0,
                "protein_g": 53.7,
                "carbs_g": 2.4,
                "fat_g": 29.6
              }
            }
          }
        ],
        "total": {
          "kcal": 492.0,
          "protein_g": 53.7,
          "carbs_g": 2.4,
          "fat_g": 29.6
        },
        "delta_vs_target": {
          "kcal": 4.0,
          "protein_g": 0.02,
          "carbs_g": 0.31,
          "fat_g": 0.28
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B32",
        "name": "Frittata de queijo + frango jerk",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B32",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 172.6,
                  "macros": {
                    "kcal": 194.0,
                    "protein_g": 39.4,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 126.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 126.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 13.0,
                  "macros": {
                    "kcal": 117.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 13.0
                  },
                  "nutrition_basis_grams": 13.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 492.0,
                "protein_g": 53.7,
                "carbs_g": 2.4,
                "fat_g": 29.6
              }
            }
          }
        ],
        "total": {
          "kcal": 492.0,
          "protein_g": 53.7,
          "carbs_g": 2.4,
          "fat_g": 29.6
        },
        "delta_vs_target": {
          "kcal": 4.0,
          "protein_g": 0.02,
          "carbs_g": 0.31,
          "fat_g": 0.28
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B33",
        "name": "Frittata estilo lorraine com frango + frango com limão e five-spice",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B33",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.5,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 483.0,
                "protein_g": 53.5,
                "carbs_g": 2.9,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 483.0,
          "protein_g": 53.5,
          "carbs_g": 2.9,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -5.0,
          "protein_g": -0.18,
          "carbs_g": 0.81,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B34",
        "name": "Frittata estilo lorraine com frango + frango ao limão e orégano",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B34",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.5,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 483.0,
                "protein_g": 53.5,
                "carbs_g": 2.9,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 483.0,
          "protein_g": 53.5,
          "carbs_g": 2.9,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -5.0,
          "protein_g": -0.18,
          "carbs_g": 0.81,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B35",
        "name": "Frittata estilo lorraine com frango + frango souvlaki",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B35",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.5,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 483.0,
                "protein_g": 53.5,
                "carbs_g": 2.9,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 483.0,
          "protein_g": 53.5,
          "carbs_g": 2.9,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -5.0,
          "protein_g": -0.18,
          "carbs_g": 0.81,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B36",
        "name": "Frittata estilo lorraine com frango + frango assado com alecrim e limão",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B36",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.5,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 483.0,
                "protein_g": 53.5,
                "carbs_g": 2.9,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 483.0,
          "protein_g": 53.5,
          "carbs_g": 2.9,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -5.0,
          "protein_g": -0.18,
          "carbs_g": 0.81,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B37",
        "name": "Omelete de abóbora e chilli + frango tikka",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B37",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 169.9,
                  "macros": {
                    "kcal": 191.0,
                    "protein_g": 38.8,
                    "carbs_g": 0.0,
                    "fat_g": 3.9
                  },
                  "nutrition_basis_grams": 124.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 124.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.3,
                    "carbs_g": 0.2,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 89.3,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.3,
                    "carbs_g": 1.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 25.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 25.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 488.0,
                "protein_g": 53.7,
                "carbs_g": 3.6,
                "fat_g": 28.7
              }
            }
          }
        ],
        "total": {
          "kcal": 488.0,
          "protein_g": 53.7,
          "carbs_g": 3.6,
          "fat_g": 28.7
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.02,
          "carbs_g": 1.51,
          "fat_g": -0.62
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B38",
        "name": "Omelete de abóbora e chilli + frango assado com alecrim e limão",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B38",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 89.3,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.3,
                    "carbs_g": 1.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 25.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 25.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 485.0,
                "protein_g": 53.7,
                "carbs_g": 3.4,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 485.0,
          "protein_g": 53.7,
          "carbs_g": 3.4,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -3.0,
          "protein_g": 0.02,
          "carbs_g": 1.31,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B39",
        "name": "Omelete de abóbora e chilli + frango ao limão e tomilho",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B39",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 89.3,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.3,
                    "carbs_g": 1.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 25.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 25.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 485.0,
                "protein_g": 53.7,
                "carbs_g": 3.4,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 485.0,
          "protein_g": 53.7,
          "carbs_g": 3.4,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -3.0,
          "protein_g": 0.02,
          "carbs_g": 1.31,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B40",
        "name": "Omelete de abóbora e chilli + frango curry caseiro",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B40",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 169.9,
                  "macros": {
                    "kcal": 191.0,
                    "protein_g": 38.8,
                    "carbs_g": 0.0,
                    "fat_g": 3.9
                  },
                  "nutrition_basis_grams": 124.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 124.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 89.3,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.3,
                    "carbs_g": 1.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 25.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 25.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.4,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.5,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 488.0,
                "protein_g": 53.6,
                "carbs_g": 4.3,
                "fat_g": 28.5
              }
            }
          }
        ],
        "total": {
          "kcal": 488.0,
          "protein_g": 53.6,
          "carbs_g": 4.3,
          "fat_g": 28.5
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.08,
          "carbs_g": 2.21,
          "fat_g": -0.82
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B41",
        "name": "Omelete de tomate e queijo tipo feta + paillard de frango com limão e ervas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B41",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 485.0,
                "protein_g": 53.6,
                "carbs_g": 3.2,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 485.0,
          "protein_g": 53.6,
          "carbs_g": 3.2,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -3.0,
          "protein_g": -0.08,
          "carbs_g": 1.11,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B42",
        "name": "Omelete de tomate e queijo tipo feta + frango gyros",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B42",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 169.9,
                  "macros": {
                    "kcal": 191.0,
                    "protein_g": 38.8,
                    "carbs_g": 0.0,
                    "fat_g": 3.9
                  },
                  "nutrition_basis_grams": 124.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 124.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.1,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 487.0,
                "protein_g": 53.5,
                "carbs_g": 3.3,
                "fat_g": 28.7
              }
            }
          }
        ],
        "total": {
          "kcal": 487.0,
          "protein_g": 53.5,
          "carbs_g": 3.3,
          "fat_g": 28.7
        },
        "delta_vs_target": {
          "kcal": -1.0,
          "protein_g": -0.18,
          "carbs_g": 1.21,
          "fat_g": -0.62
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B43",
        "name": "Omelete de tomate e queijo tipo feta + frango churrasco de limão e alho",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B43",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 485.0,
                "protein_g": 53.6,
                "carbs_g": 3.2,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 485.0,
          "protein_g": 53.6,
          "carbs_g": 3.2,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -3.0,
          "protein_g": -0.08,
          "carbs_g": 1.11,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B44",
        "name": "Omelete de tomate e queijo tipo feta + frango ao limão e tomilho",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B44",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 485.0,
                "protein_g": 53.6,
                "carbs_g": 3.2,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 485.0,
          "protein_g": 53.6,
          "carbs_g": 3.2,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -3.0,
          "protein_g": -0.08,
          "carbs_g": 1.11,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B45",
        "name": "Omelete de tomate e pimentão, adaptada + frango ao limão e tomilho",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B45",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.5,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 487.0,
                "protein_g": 53.7,
                "carbs_g": 3.7,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 487.0,
          "protein_g": 53.7,
          "carbs_g": 3.7,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -1.0,
          "protein_g": 0.02,
          "carbs_g": 1.61,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B46",
        "name": "Omelete de tomate e pimentão, adaptada + frango assado com alecrim e limão",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B46",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.5,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 487.0,
                "protein_g": 53.7,
                "carbs_g": 3.7,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 487.0,
          "protein_g": 53.7,
          "carbs_g": 3.7,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -1.0,
          "protein_g": 0.02,
          "carbs_g": 1.61,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B47",
        "name": "Omelete de tomate e pimentão, adaptada + frango ao limão e orégano",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B47",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.5,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 487.0,
                "protein_g": 53.7,
                "carbs_g": 3.7,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 487.0,
          "protein_g": 53.7,
          "carbs_g": 3.7,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -1.0,
          "protein_g": 0.02,
          "carbs_g": 1.61,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B48",
        "name": "Omelete de tomate e pimentão, adaptada + frango souvlaki",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B48",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.5,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 487.0,
                "protein_g": 53.7,
                "carbs_g": 3.7,
                "fat_g": 28.6
              }
            }
          }
        ],
        "total": {
          "kcal": 487.0,
          "protein_g": 53.7,
          "carbs_g": 3.7,
          "fat_g": 28.6
        },
        "delta_vs_target": {
          "kcal": -1.0,
          "protein_g": 0.02,
          "carbs_g": 1.61,
          "fat_g": -0.72
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B49",
        "name": "Omelete na air fryer + paillard de frango com limão e ervas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B49",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 172.6,
                  "macros": {
                    "kcal": 194.0,
                    "protein_g": 39.4,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 126.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 126.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 13.0,
                  "macros": {
                    "kcal": 117.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 13.0
                  },
                  "nutrition_basis_grams": 13.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 492.0,
                "protein_g": 53.7,
                "carbs_g": 2.4,
                "fat_g": 29.6
              }
            }
          }
        ],
        "total": {
          "kcal": 492.0,
          "protein_g": 53.7,
          "carbs_g": 2.4,
          "fat_g": 29.6
        },
        "delta_vs_target": {
          "kcal": 4.0,
          "protein_g": 0.02,
          "carbs_g": 0.31,
          "fat_g": 0.28
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B50",
        "name": "Omelete na air fryer + frango gyros",
        "recipe_uses": [
          {
            "recipe_id": "LEG-B50",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 122.0,
                    "protein_g": 10.2,
                    "carbs_g": 1.9,
                    "fat_g": 8.1
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 171.2,
                  "macros": {
                    "kcal": 192.0,
                    "protein_g": 39.1,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.0,
                    "protein_g": 4.1,
                    "carbs_g": 0.5,
                    "fat_g": 4.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.1,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 484.0,
                "protein_g": 53.6,
                "carbs_g": 2.5,
                "fat_g": 28.8
              }
            }
          }
        ],
        "total": {
          "kcal": 484.0,
          "protein_g": 53.6,
          "carbs_g": 2.5,
          "fat_g": 28.8
        },
        "delta_vs_target": {
          "kcal": -4.0,
          "protein_g": -0.08,
          "carbs_g": 0.41,
          "fat_g": -0.52
        },
        "origin": "legacy_docx",
        "sweet": false
      },
      {
        "id": "B051",
        "name": "Omelete francesa dobrada + frango ao limão e alho",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B052",
        "name": "Omelete francesa dobrada + frango tikka",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B053",
        "name": "Omelete francesa dobrada + frango estilo souvlaki",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B054",
        "name": "Omelete francesa dobrada + frango com za’atar e limão",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B055",
        "name": "Omelete francesa dobrada + frango com mostarda e ervas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B056",
        "name": "Omelete na air fryer + frango jerk",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B057",
        "name": "Omelete na air fryer + frango ao curry seco",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B058",
        "name": "Omelete na air fryer + almôndegas de frango com limão e manjericão",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B059",
        "name": "Omelete na air fryer + frango com za’atar e limão",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B060",
        "name": "Omelete na air fryer + frango com mostarda e ervas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B061",
        "name": "Quiche sem massa + frango ao limão e alho",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B062",
        "name": "Quiche sem massa + frango tikka",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B063",
        "name": "Quiche sem massa + almôndegas de frango com limão e manjericão",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B064",
        "name": "Quiche sem massa + frango com za’atar e limão",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B065",
        "name": "Quiche sem massa + frango com mostarda e ervas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B066",
        "name": "Omelete enrolada + frango ao limão e alho",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B067",
        "name": "Omelete enrolada + frango jerk",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B068",
        "name": "Omelete enrolada + frango ao curry seco",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B069",
        "name": "Omelete enrolada + frango estilo souvlaki",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B070",
        "name": "Omelete enrolada + frango com mostarda e ervas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B071",
        "name": "Muffins de omelete + frango jerk",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B072",
        "name": "Muffins de omelete + frango tikka",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B073",
        "name": "Muffins de omelete + frango ao curry seco",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B074",
        "name": "Muffins de omelete + frango com za’atar e limão",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B075",
        "name": "Muffins de omelete + frango com mostarda e ervas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B076",
        "name": "Frittata assada + frango ao limão e alho",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B077",
        "name": "Frittata assada + frango jerk",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B078",
        "name": "Frittata assada + almôndegas de frango com limão e manjericão",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B079",
        "name": "Frittata assada + frango estilo souvlaki",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B080",
        "name": "Frittata assada + frango com za’atar e limão",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B081",
        "name": "Egg bites + frango ao limão e alho",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B082",
        "name": "Egg bites + frango tikka",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B083",
        "name": "Egg bites + frango ao curry seco",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B084",
        "name": "Egg bites + frango com za’atar e limão",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B085",
        "name": "Egg bites + frango com mostarda e ervas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B086",
        "name": "Omelete de caneca no micro-ondas + frango ao limão e alho",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B087",
        "name": "Omelete de caneca no micro-ondas + frango jerk",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B088",
        "name": "Omelete de caneca no micro-ondas + frango ao curry seco",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B089",
        "name": "Omelete de caneca no micro-ondas + frango estilo souvlaki",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B090",
        "name": "Omelete de caneca no micro-ondas + frango com mostarda e ervas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B091",
        "name": "Frittata de cogumelos adaptada + frango ao limão e alho",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 56.8,
                  "macros": {
                    "kcal": 9.5,
                    "protein_g": 0.66,
                    "carbs_g": 1.13,
                    "fat_g": 0.11
                  },
                  "nutrition_basis_grams": 25.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 25.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 143.15,
                "protein_g": 10.95,
                "carbs_g": 2.84,
                "fat_g": 9.63
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 187.7,
                  "macros": {
                    "kcal": 210.98,
                    "protein_g": 42.88,
                    "carbs_g": 0.0,
                    "fat_g": 4.33
                  },
                  "nutrition_basis_grams": 137.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 137.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 345.98,
                "protein_g": 42.88,
                "carbs_g": 0.0,
                "fat_g": 19.33
              }
            }
          }
        ],
        "total": {
          "kcal": 489.13,
          "protein_g": 53.83,
          "carbs_g": 2.84,
          "fat_g": 28.96
        },
        "delta_vs_target": {
          "kcal": 1.13,
          "protein_g": 0.15,
          "carbs_g": 0.75,
          "fat_g": -0.36
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B092",
        "name": "Frittata de cogumelos adaptada + frango jerk",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 56.8,
                  "macros": {
                    "kcal": 9.5,
                    "protein_g": 0.66,
                    "carbs_g": 1.13,
                    "fat_g": 0.11
                  },
                  "nutrition_basis_grams": 25.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 25.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 143.15,
                "protein_g": 10.95,
                "carbs_g": 2.84,
                "fat_g": 9.63
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 187.7,
                  "macros": {
                    "kcal": 210.98,
                    "protein_g": 42.88,
                    "carbs_g": 0.0,
                    "fat_g": 4.33
                  },
                  "nutrition_basis_grams": 137.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 137.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 345.98,
                "protein_g": 42.88,
                "carbs_g": 0.0,
                "fat_g": 19.33
              }
            }
          }
        ],
        "total": {
          "kcal": 489.13,
          "protein_g": 53.83,
          "carbs_g": 2.84,
          "fat_g": 28.96
        },
        "delta_vs_target": {
          "kcal": 1.13,
          "protein_g": 0.15,
          "carbs_g": 0.75,
          "fat_g": -0.36
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B093",
        "name": "Frittata de cogumelos adaptada + almôndegas de frango com limão e manjericão",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 56.8,
                  "macros": {
                    "kcal": 9.5,
                    "protein_g": 0.66,
                    "carbs_g": 1.13,
                    "fat_g": 0.11
                  },
                  "nutrition_basis_grams": 25.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 25.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 143.15,
                "protein_g": 10.95,
                "carbs_g": 2.84,
                "fat_g": 9.63
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 187.7,
                  "macros": {
                    "kcal": 210.98,
                    "protein_g": 42.88,
                    "carbs_g": 0.0,
                    "fat_g": 4.33
                  },
                  "nutrition_basis_grams": 137.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 137.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 345.98,
                "protein_g": 42.88,
                "carbs_g": 0.0,
                "fat_g": 19.33
              }
            }
          }
        ],
        "total": {
          "kcal": 489.13,
          "protein_g": 53.83,
          "carbs_g": 2.84,
          "fat_g": 28.96
        },
        "delta_vs_target": {
          "kcal": 1.13,
          "protein_g": 0.15,
          "carbs_g": 0.75,
          "fat_g": -0.36
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B094",
        "name": "Frittata de cogumelos adaptada + frango com za’atar e limão",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 56.8,
                  "macros": {
                    "kcal": 9.5,
                    "protein_g": 0.66,
                    "carbs_g": 1.13,
                    "fat_g": 0.11
                  },
                  "nutrition_basis_grams": 25.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 25.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 143.15,
                "protein_g": 10.95,
                "carbs_g": 2.84,
                "fat_g": 9.63
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 187.7,
                  "macros": {
                    "kcal": 210.98,
                    "protein_g": 42.88,
                    "carbs_g": 0.0,
                    "fat_g": 4.33
                  },
                  "nutrition_basis_grams": 137.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 137.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 345.98,
                "protein_g": 42.88,
                "carbs_g": 0.0,
                "fat_g": 19.33
              }
            }
          }
        ],
        "total": {
          "kcal": 489.13,
          "protein_g": 53.83,
          "carbs_g": 2.84,
          "fat_g": 28.96
        },
        "delta_vs_target": {
          "kcal": 1.13,
          "protein_g": 0.15,
          "carbs_g": 0.75,
          "fat_g": -0.36
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B095",
        "name": "Frittata de cogumelos adaptada + frango com mostarda e ervas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 56.8,
                  "macros": {
                    "kcal": 9.5,
                    "protein_g": 0.66,
                    "carbs_g": 1.13,
                    "fat_g": 0.11
                  },
                  "nutrition_basis_grams": 25.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 25.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 143.15,
                "protein_g": 10.95,
                "carbs_g": 2.84,
                "fat_g": 9.63
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 187.7,
                  "macros": {
                    "kcal": 210.98,
                    "protein_g": 42.88,
                    "carbs_g": 0.0,
                    "fat_g": 4.33
                  },
                  "nutrition_basis_grams": 137.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 137.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 345.98,
                "protein_g": 42.88,
                "carbs_g": 0.0,
                "fat_g": 19.33
              }
            }
          }
        ],
        "total": {
          "kcal": 489.13,
          "protein_g": 53.83,
          "carbs_g": 2.84,
          "fat_g": 28.96
        },
        "delta_vs_target": {
          "kcal": 1.13,
          "protein_g": 0.15,
          "carbs_g": 0.75,
          "fat_g": -0.36
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B096",
        "name": "Omelete de queijo + frango ao limão e alho",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B097",
        "name": "Omelete de queijo + frango tikka",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B098",
        "name": "Omelete de queijo + frango ao curry seco",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B099",
        "name": "Omelete de queijo + frango estilo souvlaki",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B100",
        "name": "Omelete de queijo + frango com za’atar e limão",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-EGG-E10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 59.4,
                    "protein_g": 4.07,
                    "carbs_g": 0.54,
                    "fat_g": 4.54
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 55.0,
                  "macros": {
                    "kcal": 74.25,
                    "protein_g": 6.22,
                    "carbs_g": 1.17,
                    "fat_g": 4.98
                  },
                  "nutrition_basis_grams": 55.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.0,
                    "protein_g": 3.12,
                    "carbs_g": 0.42,
                    "fat_g": 0.09
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 148.65,
                "protein_g": 13.41,
                "carbs_g": 2.13,
                "fat_g": 9.61
              }
            }
          },
          {
            "recipe_id": "NEW-B-CH-C07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 175.3,
                  "macros": {
                    "kcal": 197.12,
                    "protein_g": 40.06,
                    "carbs_g": 0.0,
                    "fat_g": 4.04
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 341.12,
                "protein_g": 40.06,
                "carbs_g": 0.0,
                "fat_g": 20.04
              }
            }
          }
        ],
        "total": {
          "kcal": 489.77,
          "protein_g": 53.47,
          "carbs_g": 2.13,
          "fat_g": 29.65
        },
        "delta_vs_target": {
          "kcal": 1.77,
          "protein_g": -0.21,
          "carbs_g": 0.04,
          "fat_g": 0.33
        },
        "origin": "generated_v3",
        "sweet": false,
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "B101",
        "name": "Panqueca proteica low-carb — baunilha e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B102",
        "name": "Panqueca proteica low-carb — limão e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B103",
        "name": "Panqueca proteica low-carb — morango e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.08,
                    "carbs_g": 0.65,
                    "fat_g": 0.04
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 145.0,
                  "macros": {
                    "kcal": 72.5,
                    "protein_g": 15.08,
                    "carbs_g": 2.04,
                    "fat_g": 0.43
                  },
                  "nutrition_basis_grams": 145.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 495.98,
                "protein_g": 52.52,
                "carbs_g": 9.43,
                "fat_g": 27.94
              }
            }
          }
        ],
        "total": {
          "kcal": 495.98,
          "protein_g": 52.52,
          "carbs_g": 9.43,
          "fat_g": 27.94
        },
        "delta_vs_target": {
          "kcal": 7.98,
          "protein_g": -1.16,
          "carbs_g": 7.34,
          "fat_g": -1.38
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B104",
        "name": "Panqueca proteica low-carb — canela estilo cinnamon-roll",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B105",
        "name": "Panqueca proteica low-carb — pumpkin spice",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B106",
        "name": "Panqueca proteica de whey — banana e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING015",
                  "ingredient_name": "Banana prata crua",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 10.7,
                    "protein_g": 0.11,
                    "carbs_g": 2.59,
                    "fat_g": 0.03
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 83.0,
                  "macros": {
                    "kcal": 112.05,
                    "protein_g": 9.38,
                    "carbs_g": 1.77,
                    "fat_g": 7.51
                  },
                  "nutrition_basis_grams": 83.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 140.0,
                  "macros": {
                    "kcal": 70.0,
                    "protein_g": 14.56,
                    "carbs_g": 1.97,
                    "fat_g": 0.42
                  },
                  "nutrition_basis_grams": 140.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 13.0,
                  "macros": {
                    "kcal": 117.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 13.0
                  },
                  "nutrition_basis_grams": 13.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 496.23,
                "protein_g": 52.37,
                "carbs_g": 11.37,
                "fat_g": 27.19
              }
            }
          }
        ],
        "total": {
          "kcal": 496.23,
          "protein_g": 52.37,
          "carbs_g": 11.37,
          "fat_g": 27.19
        },
        "delta_vs_target": {
          "kcal": 8.23,
          "protein_g": -1.31,
          "carbs_g": 9.28,
          "fat_g": -2.13
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B107",
        "name": "Panqueca proteica de whey — laranja e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B108",
        "name": "Panqueca proteica de whey — cardamomo e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B109",
        "name": "Panqueca soufflé proteica — baunilha e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 121.5,
                    "protein_g": 10.17,
                    "carbs_g": 1.92,
                    "fat_g": 8.15
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 163.0,
                  "macros": {
                    "kcal": 81.5,
                    "protein_g": 16.95,
                    "carbs_g": 2.3,
                    "fat_g": 0.49
                  },
                  "nutrition_basis_grams": 163.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 32.0,
                  "macros": {
                    "kcal": 128.0,
                    "protein_g": 24.53,
                    "carbs_g": 2.45,
                    "fat_g": 2.24
                  },
                  "nutrition_basis_grams": 32.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 495.05,
                "protein_g": 52.58,
                "carbs_g": 8.15,
                "fat_g": 28.24
              }
            }
          }
        ],
        "total": {
          "kcal": 495.05,
          "protein_g": 52.58,
          "carbs_g": 8.15,
          "fat_g": 28.24
        },
        "delta_vs_target": {
          "kcal": 7.05,
          "protein_g": -1.1,
          "carbs_g": 6.06,
          "fat_g": -1.08
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B110",
        "name": "Panqueca soufflé proteica — morango e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.08,
                    "carbs_g": 0.65,
                    "fat_g": 0.04
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 121.5,
                    "protein_g": 10.17,
                    "carbs_g": 1.92,
                    "fat_g": 8.15
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 161.0,
                  "macros": {
                    "kcal": 80.5,
                    "protein_g": 16.74,
                    "carbs_g": 2.27,
                    "fat_g": 0.48
                  },
                  "nutrition_basis_grams": 161.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 32.0,
                  "macros": {
                    "kcal": 128.0,
                    "protein_g": 24.53,
                    "carbs_g": 2.45,
                    "fat_g": 2.24
                  },
                  "nutrition_basis_grams": 32.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 497.05,
                "protein_g": 52.45,
                "carbs_g": 8.77,
                "fat_g": 28.27
              }
            }
          }
        ],
        "total": {
          "kcal": 497.05,
          "protein_g": 52.45,
          "carbs_g": 8.77,
          "fat_g": 28.27
        },
        "delta_vs_target": {
          "kcal": 9.05,
          "protein_g": -1.23,
          "carbs_g": 6.68,
          "fat_g": -1.05
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B111",
        "name": "Panqueca soufflé proteica — limão e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 121.5,
                    "protein_g": 10.17,
                    "carbs_g": 1.92,
                    "fat_g": 8.15
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 163.0,
                  "macros": {
                    "kcal": 81.5,
                    "protein_g": 16.95,
                    "carbs_g": 2.3,
                    "fat_g": 0.49
                  },
                  "nutrition_basis_grams": 163.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 32.0,
                  "macros": {
                    "kcal": 128.0,
                    "protein_g": 24.53,
                    "carbs_g": 2.45,
                    "fat_g": 2.24
                  },
                  "nutrition_basis_grams": 32.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 495.05,
                "protein_g": 52.58,
                "carbs_g": 8.15,
                "fat_g": 28.24
              }
            }
          }
        ],
        "total": {
          "kcal": 495.05,
          "protein_g": 52.58,
          "carbs_g": 8.15,
          "fat_g": 28.24
        },
        "delta_vs_target": {
          "kcal": 7.05,
          "protein_g": -1.1,
          "carbs_g": 6.06,
          "fat_g": -1.08
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B112",
        "name": "Panqueca soufflé proteica — laranja e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 121.5,
                    "protein_g": 10.17,
                    "carbs_g": 1.92,
                    "fat_g": 8.15
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 163.0,
                  "macros": {
                    "kcal": 81.5,
                    "protein_g": 16.95,
                    "carbs_g": 2.3,
                    "fat_g": 0.49
                  },
                  "nutrition_basis_grams": 163.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 32.0,
                  "macros": {
                    "kcal": 128.0,
                    "protein_g": 24.53,
                    "carbs_g": 2.45,
                    "fat_g": 2.24
                  },
                  "nutrition_basis_grams": 32.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 495.05,
                "protein_g": 52.58,
                "carbs_g": 8.15,
                "fat_g": 28.24
              }
            }
          }
        ],
        "total": {
          "kcal": 495.05,
          "protein_g": 52.58,
          "carbs_g": 8.15,
          "fat_g": 28.24
        },
        "delta_vs_target": {
          "kcal": 7.05,
          "protein_g": -1.1,
          "carbs_g": 6.06,
          "fat_g": -1.08
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B113",
        "name": "Panqueca soufflé proteica — canela estilo cinnamon-roll",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-13",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 121.5,
                    "protein_g": 10.17,
                    "carbs_g": 1.92,
                    "fat_g": 8.15
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 163.0,
                  "macros": {
                    "kcal": 81.5,
                    "protein_g": 16.95,
                    "carbs_g": 2.3,
                    "fat_g": 0.49
                  },
                  "nutrition_basis_grams": 163.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 32.0,
                  "macros": {
                    "kcal": 128.0,
                    "protein_g": 24.53,
                    "carbs_g": 2.45,
                    "fat_g": 2.24
                  },
                  "nutrition_basis_grams": 32.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 495.05,
                "protein_g": 52.58,
                "carbs_g": 8.15,
                "fat_g": 28.24
              }
            }
          }
        ],
        "total": {
          "kcal": 495.05,
          "protein_g": 52.58,
          "carbs_g": 8.15,
          "fat_g": 28.24
        },
        "delta_vs_target": {
          "kcal": 7.05,
          "protein_g": -1.1,
          "carbs_g": 6.06,
          "fat_g": -1.08
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B114",
        "name": "Panqueca soufflé proteica — noz-moscada e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-14",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 90.0,
                  "macros": {
                    "kcal": 121.5,
                    "protein_g": 10.17,
                    "carbs_g": 1.92,
                    "fat_g": 8.15
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 163.0,
                  "macros": {
                    "kcal": 81.5,
                    "protein_g": 16.95,
                    "carbs_g": 2.3,
                    "fat_g": 0.49
                  },
                  "nutrition_basis_grams": 163.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 32.0,
                  "macros": {
                    "kcal": 128.0,
                    "protein_g": 24.53,
                    "carbs_g": 2.45,
                    "fat_g": 2.24
                  },
                  "nutrition_basis_grams": 32.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 495.05,
                "protein_g": 52.58,
                "carbs_g": 8.15,
                "fat_g": 28.24
              }
            }
          }
        ],
        "total": {
          "kcal": 495.05,
          "protein_g": 52.58,
          "carbs_g": 8.15,
          "fat_g": 28.24
        },
        "delta_vs_target": {
          "kcal": 7.05,
          "protein_g": -1.1,
          "carbs_g": 6.06,
          "fat_g": -1.08
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B115",
        "name": "Waffle proteico low-carb — baunilha e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-15",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B116",
        "name": "Waffle proteico low-carb — morango e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-16",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.08,
                    "carbs_g": 0.65,
                    "fat_g": 0.04
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 145.0,
                  "macros": {
                    "kcal": 72.5,
                    "protein_g": 15.08,
                    "carbs_g": 2.04,
                    "fat_g": 0.43
                  },
                  "nutrition_basis_grams": 145.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 495.98,
                "protein_g": 52.52,
                "carbs_g": 9.43,
                "fat_g": 27.94
              }
            }
          }
        ],
        "total": {
          "kcal": 495.98,
          "protein_g": 52.52,
          "carbs_g": 9.43,
          "fat_g": 27.94
        },
        "delta_vs_target": {
          "kcal": 7.98,
          "protein_g": -1.16,
          "carbs_g": 7.34,
          "fat_g": -1.38
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B117",
        "name": "Waffle proteico low-carb — banana e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-17",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING015",
                  "ingredient_name": "Banana prata crua",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 10.7,
                    "protein_g": 0.11,
                    "carbs_g": 2.59,
                    "fat_g": 0.03
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 83.0,
                  "macros": {
                    "kcal": 112.05,
                    "protein_g": 9.38,
                    "carbs_g": 1.77,
                    "fat_g": 7.51
                  },
                  "nutrition_basis_grams": 83.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 140.0,
                  "macros": {
                    "kcal": 70.0,
                    "protein_g": 14.56,
                    "carbs_g": 1.97,
                    "fat_g": 0.42
                  },
                  "nutrition_basis_grams": 140.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 13.0,
                  "macros": {
                    "kcal": 117.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 13.0
                  },
                  "nutrition_basis_grams": 13.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 496.23,
                "protein_g": 52.37,
                "carbs_g": 11.37,
                "fat_g": 27.19
              }
            }
          }
        ],
        "total": {
          "kcal": 496.23,
          "protein_g": 52.37,
          "carbs_g": 11.37,
          "fat_g": 27.19
        },
        "delta_vs_target": {
          "kcal": 8.23,
          "protein_g": -1.31,
          "carbs_g": 9.28,
          "fat_g": -2.13
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B118",
        "name": "Waffle proteico low-carb — limão e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-18",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B119",
        "name": "Waffle proteico low-carb — pumpkin spice",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-19",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B120",
        "name": "Waffle proteico low-carb — canela estilo cinnamon-roll",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-20",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B121",
        "name": "Waffle proteico low-carb — laranja e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-21",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B122",
        "name": "Waffle proteico low-carb — cardamomo e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-22",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B123",
        "name": "Crepe proteico fino — limão e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-23",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B124",
        "name": "Crepe proteico fino — laranja e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-24",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B125",
        "name": "Crepe proteico fino — morango e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-25",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.08,
                    "carbs_g": 0.65,
                    "fat_g": 0.04
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 145.0,
                  "macros": {
                    "kcal": 72.5,
                    "protein_g": 15.08,
                    "carbs_g": 2.04,
                    "fat_g": 0.43
                  },
                  "nutrition_basis_grams": 145.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 495.98,
                "protein_g": 52.52,
                "carbs_g": 9.43,
                "fat_g": 27.94
              }
            }
          }
        ],
        "total": {
          "kcal": 495.98,
          "protein_g": 52.52,
          "carbs_g": 9.43,
          "fat_g": 27.94
        },
        "delta_vs_target": {
          "kcal": 7.98,
          "protein_g": -1.16,
          "carbs_g": 7.34,
          "fat_g": -1.38
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B126",
        "name": "Crepe proteico fino — banana e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-26",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING015",
                  "ingredient_name": "Banana prata crua",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 10.7,
                    "protein_g": 0.11,
                    "carbs_g": 2.59,
                    "fat_g": 0.03
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 83.0,
                  "macros": {
                    "kcal": 112.05,
                    "protein_g": 9.38,
                    "carbs_g": 1.77,
                    "fat_g": 7.51
                  },
                  "nutrition_basis_grams": 83.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 140.0,
                  "macros": {
                    "kcal": 70.0,
                    "protein_g": 14.56,
                    "carbs_g": 1.97,
                    "fat_g": 0.42
                  },
                  "nutrition_basis_grams": 140.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 13.0,
                  "macros": {
                    "kcal": 117.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 13.0
                  },
                  "nutrition_basis_grams": 13.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 496.23,
                "protein_g": 52.37,
                "carbs_g": 11.37,
                "fat_g": 27.19
              }
            }
          }
        ],
        "total": {
          "kcal": 496.23,
          "protein_g": 52.37,
          "carbs_g": 11.37,
          "fat_g": 27.19
        },
        "delta_vs_target": {
          "kcal": 8.23,
          "protein_g": -1.31,
          "carbs_g": 9.28,
          "fat_g": -2.13
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B127",
        "name": "Crepe proteico fino — baunilha e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-27",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B128",
        "name": "Crepe proteico fino — cardamomo e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-28",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B129",
        "name": "Crepe proteico fino — limão e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-29",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B130",
        "name": "Crepe proteico fino — noz-moscada e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-30",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B131",
        "name": "Mug cake proteico — baunilha e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-31",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B132",
        "name": "Mug cake proteico — limão e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-32",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B133",
        "name": "Mug cake proteico — café e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-33",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B134",
        "name": "Mug cake proteico — morango e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-34",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.08,
                    "carbs_g": 0.65,
                    "fat_g": 0.04
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 145.0,
                  "macros": {
                    "kcal": 72.5,
                    "protein_g": 15.08,
                    "carbs_g": 2.04,
                    "fat_g": 0.43
                  },
                  "nutrition_basis_grams": 145.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 495.98,
                "protein_g": 52.52,
                "carbs_g": 9.43,
                "fat_g": 27.94
              }
            }
          }
        ],
        "total": {
          "kcal": 495.98,
          "protein_g": 52.52,
          "carbs_g": 9.43,
          "fat_g": 27.94
        },
        "delta_vs_target": {
          "kcal": 7.98,
          "protein_g": -1.16,
          "carbs_g": 7.34,
          "fat_g": -1.38
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B135",
        "name": "Mug cake proteico — pumpkin spice",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-35",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B136",
        "name": "Mug cake proteico — gengibre e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-36",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B137",
        "name": "Bolo proteico de baunilha low-carb — baunilha e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-37",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B138",
        "name": "Bolo proteico de baunilha low-carb — limão e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-38",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B139",
        "name": "Bolo proteico de baunilha low-carb — morango e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-39",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.08,
                    "carbs_g": 0.65,
                    "fat_g": 0.04
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 145.0,
                  "macros": {
                    "kcal": 72.5,
                    "protein_g": 15.08,
                    "carbs_g": 2.04,
                    "fat_g": 0.43
                  },
                  "nutrition_basis_grams": 145.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 495.98,
                "protein_g": 52.52,
                "carbs_g": 9.43,
                "fat_g": 27.94
              }
            }
          }
        ],
        "total": {
          "kcal": 495.98,
          "protein_g": 52.52,
          "carbs_g": 9.43,
          "fat_g": 27.94
        },
        "delta_vs_target": {
          "kcal": 7.98,
          "protein_g": -1.16,
          "carbs_g": 7.34,
          "fat_g": -1.38
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B140",
        "name": "Bolo proteico de baunilha low-carb — pumpkin spice",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-40",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B141",
        "name": "Bolo proteico de baunilha low-carb — laranja e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-41",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B142",
        "name": "Donut proteico assado — baunilha e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-42",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B143",
        "name": "Donut proteico assado — limão e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-43",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B144",
        "name": "Donut proteico assado — morango e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-44",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.08,
                    "carbs_g": 0.65,
                    "fat_g": 0.04
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 145.0,
                  "macros": {
                    "kcal": 72.5,
                    "protein_g": 15.08,
                    "carbs_g": 2.04,
                    "fat_g": 0.43
                  },
                  "nutrition_basis_grams": 145.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 495.98,
                "protein_g": 52.52,
                "carbs_g": 9.43,
                "fat_g": 27.94
              }
            }
          }
        ],
        "total": {
          "kcal": 495.98,
          "protein_g": 52.52,
          "carbs_g": 9.43,
          "fat_g": 27.94
        },
        "delta_vs_target": {
          "kcal": 7.98,
          "protein_g": -1.16,
          "carbs_g": 7.34,
          "fat_g": -1.38
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B145",
        "name": "Donut proteico assado — pumpkin spice",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-45",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 9.04,
                    "carbs_g": 1.7,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 148.0,
                  "macros": {
                    "kcal": 74.0,
                    "protein_g": 15.39,
                    "carbs_g": 2.09,
                    "fat_g": 0.44
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 140.0,
                    "protein_g": 26.83,
                    "carbs_g": 2.68,
                    "fat_g": 2.45
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 494.48,
                "protein_g": 52.75,
                "carbs_g": 8.83,
                "fat_g": 27.91
              }
            }
          }
        ],
        "total": {
          "kcal": 494.48,
          "protein_g": 52.75,
          "carbs_g": 8.83,
          "fat_g": 27.91
        },
        "delta_vs_target": {
          "kcal": 6.48,
          "protein_g": -0.93,
          "carbs_g": 6.74,
          "fat_g": -1.41
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B146",
        "name": "Custard proteico de ovos — noz-moscada e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-46",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.3,
                    "protein_g": 1.23,
                    "carbs_g": 0.57,
                    "fat_g": 0.9
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 184.0,
                  "macros": {
                    "kcal": 248.4,
                    "protein_g": 20.79,
                    "carbs_g": 3.92,
                    "fat_g": 16.65
                  },
                  "nutrition_basis_grams": 184.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 58.0,
                  "macros": {
                    "kcal": 29.0,
                    "protein_g": 6.03,
                    "carbs_g": 0.82,
                    "fat_g": 0.17
                  },
                  "nutrition_basis_grams": 58.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 120.0,
                    "protein_g": 23.0,
                    "carbs_g": 2.3,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 495.18,
                "protein_g": 52.54,
                "carbs_g": 9.97,
                "fat_g": 27.6
              }
            }
          }
        ],
        "total": {
          "kcal": 495.18,
          "protein_g": 52.54,
          "carbs_g": 9.97,
          "fat_g": 27.6
        },
        "delta_vs_target": {
          "kcal": 7.18,
          "protein_g": -1.14,
          "carbs_g": 7.88,
          "fat_g": -1.72
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B147",
        "name": "Custard proteico de ovos — baunilha e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-47",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.3,
                    "protein_g": 1.23,
                    "carbs_g": 0.57,
                    "fat_g": 0.9
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 184.0,
                  "macros": {
                    "kcal": 248.4,
                    "protein_g": 20.79,
                    "carbs_g": 3.92,
                    "fat_g": 16.65
                  },
                  "nutrition_basis_grams": 184.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 58.0,
                  "macros": {
                    "kcal": 29.0,
                    "protein_g": 6.03,
                    "carbs_g": 0.82,
                    "fat_g": 0.17
                  },
                  "nutrition_basis_grams": 58.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 120.0,
                    "protein_g": 23.0,
                    "carbs_g": 2.3,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 495.18,
                "protein_g": 52.54,
                "carbs_g": 9.97,
                "fat_g": 27.6
              }
            }
          }
        ],
        "total": {
          "kcal": 495.18,
          "protein_g": 52.54,
          "carbs_g": 9.97,
          "fat_g": 27.6
        },
        "delta_vs_target": {
          "kcal": 7.18,
          "protein_g": -1.14,
          "carbs_g": 7.88,
          "fat_g": -1.72
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B148",
        "name": "Custard proteico de ovos — limão e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-48",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.3,
                    "protein_g": 1.23,
                    "carbs_g": 0.57,
                    "fat_g": 0.9
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 184.0,
                  "macros": {
                    "kcal": 248.4,
                    "protein_g": 20.79,
                    "carbs_g": 3.92,
                    "fat_g": 16.65
                  },
                  "nutrition_basis_grams": 184.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 58.0,
                  "macros": {
                    "kcal": 29.0,
                    "protein_g": 6.03,
                    "carbs_g": 0.82,
                    "fat_g": 0.17
                  },
                  "nutrition_basis_grams": 58.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 120.0,
                    "protein_g": 23.0,
                    "carbs_g": 2.3,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 495.18,
                "protein_g": 52.54,
                "carbs_g": 9.97,
                "fat_g": 27.6
              }
            }
          }
        ],
        "total": {
          "kcal": 495.18,
          "protein_g": 52.54,
          "carbs_g": 9.97,
          "fat_g": 27.6
        },
        "delta_vs_target": {
          "kcal": 7.18,
          "protein_g": -1.14,
          "carbs_g": 7.88,
          "fat_g": -1.72
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B149",
        "name": "Custard proteico de ovos — laranja e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-49",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.3,
                    "protein_g": 1.23,
                    "carbs_g": 0.57,
                    "fat_g": 0.9
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 184.0,
                  "macros": {
                    "kcal": 248.4,
                    "protein_g": 20.79,
                    "carbs_g": 3.92,
                    "fat_g": 16.65
                  },
                  "nutrition_basis_grams": 184.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 58.0,
                  "macros": {
                    "kcal": 29.0,
                    "protein_g": 6.03,
                    "carbs_g": 0.82,
                    "fat_g": 0.17
                  },
                  "nutrition_basis_grams": 58.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 120.0,
                    "protein_g": 23.0,
                    "carbs_g": 2.3,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 495.18,
                "protein_g": 52.54,
                "carbs_g": 9.97,
                "fat_g": 27.6
              }
            }
          }
        ],
        "total": {
          "kcal": 495.18,
          "protein_g": 52.54,
          "carbs_g": 9.97,
          "fat_g": 27.6
        },
        "delta_vs_target": {
          "kcal": 7.18,
          "protein_g": -1.14,
          "carbs_g": 7.88,
          "fat_g": -1.72
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      },
      {
        "id": "B150",
        "name": "Custard proteico de ovos — cardamomo e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-B-SWEET-50",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 15.3,
                    "protein_g": 1.23,
                    "carbs_g": 0.57,
                    "fat_g": 0.9
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 184.0,
                  "macros": {
                    "kcal": 248.4,
                    "protein_g": 20.79,
                    "carbs_g": 3.92,
                    "fat_g": 16.65
                  },
                  "nutrition_basis_grams": 184.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 58.0,
                  "macros": {
                    "kcal": 29.0,
                    "protein_g": 6.03,
                    "carbs_g": 0.82,
                    "fat_g": 0.17
                  },
                  "nutrition_basis_grams": 58.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 120.0,
                    "protein_g": 23.0,
                    "carbs_g": 2.3,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 8.2,
                  "macros": {
                    "kcal": 46.48,
                    "protein_g": 1.49,
                    "carbs_g": 2.36,
                    "fat_g": 3.78
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 8.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 495.18,
                "protein_g": 52.54,
                "carbs_g": 9.97,
                "fat_g": 27.6
              }
            }
          }
        ],
        "total": {
          "kcal": 495.18,
          "protein_g": 52.54,
          "carbs_g": 9.97,
          "fat_g": 27.6
        },
        "delta_vs_target": {
          "kcal": 7.18,
          "protein_g": -1.14,
          "carbs_g": 7.88,
          "fat_g": -1.72
        },
        "origin": "generated_v3",
        "sweet": true,
        "pairing_basis": "explicit_curated_concept",
        "macro_note": "Opção doce com Whey: carboidratos podem ficar acima do alvo original extremamente baixo; o desvio é explicitado."
      }
    ],
    "lunch": [
      {
        "id": "L02",
        "name": "Strogonoff de carne com cogumelos e iogurte zero lactose + vagem com alho + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 364.0,
                  "macros": {
                    "kcal": 579.0,
                    "protein_g": 72.9,
                    "carbs_g": 0.0,
                    "fat_g": 29.8
                  },
                  "nutrition_basis_grams": 273.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 273.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.4,
                    "carbs_g": 0.2,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 132.6,
                  "macros": {
                    "kcal": 27.0,
                    "protein_g": 1.9,
                    "carbs_g": 5.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 118.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 118.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.4,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 45.5,
                  "macros": {
                    "kcal": 8.0,
                    "protein_g": 0.5,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 20.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 630.0,
                "protein_g": 76.9,
                "carbs_g": 9.1,
                "fat_g": 30.5
              }
            }
          }
        ],
        "total": {
          "kcal": 630.0,
          "protein_g": 76.9,
          "carbs_g": 9.1,
          "fat_g": 30.5
        },
        "delta_vs_target": {
          "kcal": 1.0,
          "protein_g": -0.15,
          "carbs_g": -0.07,
          "fat_g": -0.19
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L03",
        "name": "Strogonoff de carne com cogumelos e iogurte zero lactose + vagem com amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 364.0,
                  "macros": {
                    "kcal": 579.0,
                    "protein_g": 72.9,
                    "carbs_g": 0.0,
                    "fat_g": 29.8
                  },
                  "nutrition_basis_grams": 273.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 273.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.4,
                    "carbs_g": 0.2,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 132.6,
                  "macros": {
                    "kcal": 27.0,
                    "protein_g": 1.9,
                    "carbs_g": 5.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 118.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 118.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.4,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 45.5,
                  "macros": {
                    "kcal": 8.0,
                    "protein_g": 0.5,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 20.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 630.0,
                "protein_g": 76.9,
                "carbs_g": 9.1,
                "fat_g": 30.5
              }
            }
          }
        ],
        "total": {
          "kcal": 630.0,
          "protein_g": 76.9,
          "carbs_g": 9.1,
          "fat_g": 30.5
        },
        "delta_vs_target": {
          "kcal": 1.0,
          "protein_g": -0.15,
          "carbs_g": -0.07,
          "fat_g": -0.19
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L04",
        "name": "Carne ao curry + vagem com alho + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 368.0,
                  "macros": {
                    "kcal": 585.0,
                    "protein_g": 73.7,
                    "carbs_g": 0.0,
                    "fat_g": 30.1
                  },
                  "nutrition_basis_grams": 276.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 276.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 132.6,
                  "macros": {
                    "kcal": 27.0,
                    "protein_g": 1.9,
                    "carbs_g": 5.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 118.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 118.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.7,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 628.0,
                "protein_g": 77.0,
                "carbs_g": 9.1,
                "fat_g": 30.4
              }
            }
          }
        ],
        "total": {
          "kcal": 628.0,
          "protein_g": 77.0,
          "carbs_g": 9.1,
          "fat_g": 30.4
        },
        "delta_vs_target": {
          "kcal": -1.0,
          "protein_g": -0.05,
          "carbs_g": -0.07,
          "fat_g": -0.29
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L05",
        "name": "Carne ao curry + purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 364.0,
                  "macros": {
                    "kcal": 579.0,
                    "protein_g": 72.9,
                    "carbs_g": 0.0,
                    "fat_g": 29.8
                  },
                  "nutrition_basis_grams": 273.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 273.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 6.0,
                    "protein_g": 0.5,
                    "carbs_g": 0.2,
                    "fat_g": 0.4
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 172.4,
                  "macros": {
                    "kcal": 29.0,
                    "protein_g": 2.2,
                    "carbs_g": 5.8,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 169.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 169.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.7,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 630.0,
                "protein_g": 77.0,
                "carbs_g": 9.2,
                "fat_g": 30.6
              }
            }
          }
        ],
        "total": {
          "kcal": 630.0,
          "protein_g": 77.0,
          "carbs_g": 9.2,
          "fat_g": 30.6
        },
        "delta_vs_target": {
          "kcal": 1.0,
          "protein_g": -0.05,
          "carbs_g": 0.03,
          "fat_g": -0.09
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L07",
        "name": "Ragù de carne e tomate + vagem ao limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 366.7,
                  "macros": {
                    "kcal": 583.0,
                    "protein_g": 73.4,
                    "carbs_g": 0.0,
                    "fat_g": 30.0
                  },
                  "nutrition_basis_grams": 275.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 275.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 1.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.3,
                    "carbs_g": 0.0,
                    "fat_g": 0.4
                  },
                  "nutrition_basis_grams": 1.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 123.6,
                  "macros": {
                    "kcal": 25.0,
                    "protein_g": 1.8,
                    "carbs_g": 5.5,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 110.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 110.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.3,
                    "carbs_g": 1.1,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.7,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 629.0,
                "protein_g": 77.0,
                "carbs_g": 9.0,
                "fat_g": 30.8
              }
            }
          }
        ],
        "total": {
          "kcal": 629.0,
          "protein_g": 77.0,
          "carbs_g": 9.0,
          "fat_g": 30.8
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.05,
          "carbs_g": -0.17,
          "fat_g": 0.11
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L08",
        "name": "Ragù de carne e tomate + purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 364.0,
                  "macros": {
                    "kcal": 579.0,
                    "protein_g": 72.9,
                    "carbs_g": 0.0,
                    "fat_g": 29.8
                  },
                  "nutrition_basis_grams": 273.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 273.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.4,
                    "carbs_g": 0.2,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 161.2,
                  "macros": {
                    "kcal": 27.0,
                    "protein_g": 2.0,
                    "carbs_g": 5.4,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 158.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 158.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.3,
                    "carbs_g": 1.1,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.7,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 628.0,
                "protein_g": 76.8,
                "carbs_g": 9.1,
                "fat_g": 30.6
              }
            }
          }
        ],
        "total": {
          "kcal": 628.0,
          "protein_g": 76.8,
          "carbs_g": 9.1,
          "fat_g": 30.6
        },
        "delta_vs_target": {
          "kcal": -1.0,
          "protein_g": -0.25,
          "carbs_g": -0.07,
          "fat_g": -0.09
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L10",
        "name": "Bolonhesa sem massa + vagem com amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 368.0,
                  "macros": {
                    "kcal": 585.0,
                    "protein_g": 73.7,
                    "carbs_g": 0.0,
                    "fat_g": 30.1
                  },
                  "nutrition_basis_grams": 276.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 276.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 121.3,
                  "macros": {
                    "kcal": 25.0,
                    "protein_g": 1.7,
                    "carbs_g": 5.4,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 108.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 108.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.3,
                    "carbs_g": 1.1,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.7,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 627.0,
                "protein_g": 76.9,
                "carbs_g": 8.9,
                "fat_g": 30.5
              }
            }
          }
        ],
        "total": {
          "kcal": 627.0,
          "protein_g": 76.9,
          "carbs_g": 8.9,
          "fat_g": 30.5
        },
        "delta_vs_target": {
          "kcal": -2.0,
          "protein_g": -0.15,
          "carbs_g": -0.27,
          "fat_g": -0.19
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L13",
        "name": "Kofta bovina com molho de iogurte e hortelã + berinjela com tomate e iogurte + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L13",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 272.0,
                  "macros": {
                    "kcal": 430.0,
                    "protein_g": 73.4,
                    "carbs_g": 0.0,
                    "fat_g": 15.3
                  },
                  "nutrition_basis_grams": 204.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 204.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "Ground/molded patinho: USDA FBG ground beef ≤15% fat yield (0.75) used instead of intact round-steak yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 59.0,
                  "macros": {
                    "kcal": 30.0,
                    "protein_g": 2.4,
                    "carbs_g": 1.1,
                    "fat_g": 1.8
                  },
                  "nutrition_basis_grams": 59.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 117.0,
                  "macros": {
                    "kcal": 29.0,
                    "protein_g": 0.9,
                    "carbs_g": 6.8,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 110.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 110.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.6,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 3.0,
                  "macros": {
                    "kcal": 1.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.3,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 3.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 624.0,
                "protein_g": 77.6,
                "carbs_g": 9.7,
                "fat_g": 31.5
              }
            }
          }
        ],
        "total": {
          "kcal": 624.0,
          "protein_g": 77.6,
          "carbs_g": 9.7,
          "fat_g": 31.5
        },
        "delta_vs_target": {
          "kcal": -5.0,
          "protein_g": 0.55,
          "carbs_g": 0.53,
          "fat_g": 0.81
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L15",
        "name": "Kofta bovina com molho de iogurte e hortelã + vagem com alho + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L15",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 269.3,
                  "macros": {
                    "kcal": 426.0,
                    "protein_g": 72.7,
                    "carbs_g": 0.0,
                    "fat_g": 15.2
                  },
                  "nutrition_basis_grams": 202.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 202.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "Ground/molded patinho: USDA FBG ground beef ≤15% fat yield (0.75) used instead of intact round-steak yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 26.0,
                    "protein_g": 2.0,
                    "carbs_g": 0.9,
                    "fat_g": 1.5
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 142.7,
                  "macros": {
                    "kcal": 29.0,
                    "protein_g": 2.0,
                    "carbs_g": 6.4,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 127.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 127.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 6.0,
                    "protein_g": 0.3,
                    "carbs_g": 1.4,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 627.0,
                "protein_g": 77.6,
                "carbs_g": 9.6,
                "fat_g": 32.0
              }
            }
          }
        ],
        "total": {
          "kcal": 627.0,
          "protein_g": 77.6,
          "carbs_g": 9.6,
          "fat_g": 32.0
        },
        "delta_vs_target": {
          "kcal": -2.0,
          "protein_g": 0.55,
          "carbs_g": 0.43,
          "fat_g": 1.31
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L17",
        "name": "Kofte marroquino ao tomate + brócolis assado + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L17",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 313.8,
                  "macros": {
                    "kcal": 430.0,
                    "protein_g": 73.4,
                    "carbs_g": 0.0,
                    "fat_g": 15.3
                  },
                  "nutrition_basis_grams": 204.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 204.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 100.0,
                  "macros": {
                    "kcal": 27.0,
                    "protein_g": 2.7,
                    "carbs_g": 4.4,
                    "fat_g": 0.5
                  },
                  "nutrition_basis_grams": 100.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 100.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 54.0,
                  "macros": {
                    "kcal": 10.0,
                    "protein_g": 0.6,
                    "carbs_g": 2.1,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 54.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 25.0,
                  "macros": {
                    "kcal": 10.0,
                    "protein_g": 0.4,
                    "carbs_g": 2.3,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 25.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 626.0,
                "protein_g": 77.7,
                "carbs_g": 9.7,
                "fat_g": 32.0
              }
            }
          }
        ],
        "total": {
          "kcal": 626.0,
          "protein_g": 77.7,
          "carbs_g": 9.7,
          "fat_g": 32.0
        },
        "delta_vs_target": {
          "kcal": -3.0,
          "protein_g": 0.65,
          "carbs_g": 0.53,
          "fat_g": 1.31
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L18",
        "name": "Kofte marroquino ao tomate + vagem com mostarda em grãos + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L18",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 318.5,
                  "macros": {
                    "kcal": 437.0,
                    "protein_g": 74.5,
                    "carbs_g": 0.0,
                    "fat_g": 15.5
                  },
                  "nutrition_basis_grams": 207.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 207.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 112.4,
                  "macros": {
                    "kcal": 23.0,
                    "protein_g": 1.6,
                    "carbs_g": 5.0,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 100.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 100.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 37.0,
                  "macros": {
                    "kcal": 7.0,
                    "protein_g": 0.4,
                    "carbs_g": 1.4,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 37.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 25.0,
                  "macros": {
                    "kcal": 10.0,
                    "protein_g": 0.4,
                    "carbs_g": 2.3,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 25.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 626.0,
                "protein_g": 77.5,
                "carbs_g": 9.6,
                "fat_g": 31.8
              }
            }
          }
        ],
        "total": {
          "kcal": 626.0,
          "protein_g": 77.5,
          "carbs_g": 9.6,
          "fat_g": 31.8
        },
        "delta_vs_target": {
          "kcal": -3.0,
          "protein_g": 0.45,
          "carbs_g": 0.43,
          "fat_g": 1.11
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L20",
        "name": "Hambúrguer kofta caseiro + vagem ao limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L20",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 276.0,
                  "macros": {
                    "kcal": 437.0,
                    "protein_g": 74.5,
                    "carbs_g": 0.0,
                    "fat_g": 15.5
                  },
                  "nutrition_basis_grams": 207.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 207.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "Ground/molded patinho: USDA FBG ground beef ≤15% fat yield (0.75) used instead of intact round-steak yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 153.9,
                  "macros": {
                    "kcal": 32.0,
                    "protein_g": 2.2,
                    "carbs_g": 6.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 137.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 137.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 8.0,
                    "protein_g": 0.4,
                    "carbs_g": 1.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 626.0,
                "protein_g": 77.7,
                "carbs_g": 9.6,
                "fat_g": 31.8
              }
            }
          }
        ],
        "total": {
          "kcal": 626.0,
          "protein_g": 77.7,
          "carbs_g": 9.6,
          "fat_g": 31.8
        },
        "delta_vs_target": {
          "kcal": -3.0,
          "protein_g": 0.65,
          "carbs_g": 0.43,
          "fat_g": 1.11
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L21",
        "name": "Hambúrguer kofta caseiro + purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L21",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 270.7,
                  "macros": {
                    "kcal": 428.0,
                    "protein_g": 73.1,
                    "carbs_g": 0.0,
                    "fat_g": 15.2
                  },
                  "nutrition_basis_grams": 203.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 203.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "Ground/molded patinho: USDA FBG ground beef ≤15% fat yield (0.75) used instead of intact round-steak yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 1.4,
                    "carbs_g": 0.7,
                    "fat_g": 1.0
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 185.7,
                  "macros": {
                    "kcal": 31.0,
                    "protein_g": 2.3,
                    "carbs_g": 6.2,
                    "fat_g": 0.4
                  },
                  "nutrition_basis_grams": 182.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 182.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 8.0,
                    "protein_g": 0.4,
                    "carbs_g": 1.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 625.0,
                "protein_g": 77.8,
                "carbs_g": 9.6,
                "fat_g": 31.7
              }
            }
          }
        ],
        "total": {
          "kcal": 625.0,
          "protein_g": 77.8,
          "carbs_g": 9.6,
          "fat_g": 31.7
        },
        "delta_vs_target": {
          "kcal": -4.0,
          "protein_g": 0.75,
          "carbs_g": 0.43,
          "fat_g": 1.01
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L22",
        "name": "Almôndegas ao strogonoff + vagem com alho + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L22",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 364.0,
                  "macros": {
                    "kcal": 579.0,
                    "protein_g": 72.9,
                    "carbs_g": 0.0,
                    "fat_g": 29.8
                  },
                  "nutrition_basis_grams": 273.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 273.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.4,
                    "carbs_g": 0.2,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 132.6,
                  "macros": {
                    "kcal": 27.0,
                    "protein_g": 1.9,
                    "carbs_g": 5.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 118.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 118.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.4,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 45.5,
                  "macros": {
                    "kcal": 8.0,
                    "protein_g": 0.5,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 20.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 630.0,
                "protein_g": 76.9,
                "carbs_g": 9.1,
                "fat_g": 30.5
              }
            }
          }
        ],
        "total": {
          "kcal": 630.0,
          "protein_g": 76.9,
          "carbs_g": 9.1,
          "fat_g": 30.5
        },
        "delta_vs_target": {
          "kcal": 1.0,
          "protein_g": -0.15,
          "carbs_g": -0.07,
          "fat_g": -0.19
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L23",
        "name": "Almôndegas ao strogonoff + vagem com amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L23",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 364.0,
                  "macros": {
                    "kcal": 579.0,
                    "protein_g": 72.9,
                    "carbs_g": 0.0,
                    "fat_g": 29.8
                  },
                  "nutrition_basis_grams": 273.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 273.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.4,
                    "carbs_g": 0.2,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 132.6,
                  "macros": {
                    "kcal": 27.0,
                    "protein_g": 1.9,
                    "carbs_g": 5.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 118.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 118.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.4,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 45.5,
                  "macros": {
                    "kcal": 8.0,
                    "protein_g": 0.5,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 20.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 630.0,
                "protein_g": 76.9,
                "carbs_g": 9.1,
                "fat_g": 30.5
              }
            }
          }
        ],
        "total": {
          "kcal": 630.0,
          "protein_g": 76.9,
          "carbs_g": 9.1,
          "fat_g": 30.5
        },
        "delta_vs_target": {
          "kcal": 1.0,
          "protein_g": -0.15,
          "carbs_g": -0.07,
          "fat_g": -0.19
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L25",
        "name": "Carne de panela leve + vagem com mostarda em grãos + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L25",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 368.0,
                  "macros": {
                    "kcal": 585.0,
                    "protein_g": 73.7,
                    "carbs_g": 0.0,
                    "fat_g": 30.1
                  },
                  "nutrition_basis_grams": 276.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 276.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 137.1,
                  "macros": {
                    "kcal": 28.0,
                    "protein_g": 2.0,
                    "carbs_g": 6.1,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 122.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 122.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.6,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.7,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 628.0,
                "protein_g": 77.1,
                "carbs_g": 9.1,
                "fat_g": 30.4
              }
            }
          }
        ],
        "total": {
          "kcal": 628.0,
          "protein_g": 77.1,
          "carbs_g": 9.1,
          "fat_g": 30.4
        },
        "delta_vs_target": {
          "kcal": -1.0,
          "protein_g": 0.05,
          "carbs_g": -0.07,
          "fat_g": -0.29
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L26",
        "name": "Carne de panela leve + berinjela com tomate e iogurte + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L26",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 368.0,
                  "macros": {
                    "kcal": 585.0,
                    "protein_g": 73.7,
                    "carbs_g": 0.0,
                    "fat_g": 30.1
                  },
                  "nutrition_basis_grams": 276.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 276.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.3,
                    "carbs_g": 0.2,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 117.0,
                  "macros": {
                    "kcal": 29.0,
                    "protein_g": 0.9,
                    "carbs_g": 6.8,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 110.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 110.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.3,
                    "carbs_g": 1.1,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.7,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 631.0,
                "protein_g": 75.9,
                "carbs_g": 9.7,
                "fat_g": 30.8
              }
            }
          }
        ],
        "total": {
          "kcal": 631.0,
          "protein_g": 75.9,
          "carbs_g": 9.7,
          "fat_g": 30.8
        },
        "delta_vs_target": {
          "kcal": 2.0,
          "protein_g": -1.15,
          "carbs_g": 0.53,
          "fat_g": 0.11
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L28",
        "name": "Carne com cebola estilo pot-roast + purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L28",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 365.3,
                  "macros": {
                    "kcal": 581.0,
                    "protein_g": 73.2,
                    "carbs_g": 0.0,
                    "fat_g": 29.9
                  },
                  "nutrition_basis_grams": 274.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 274.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.4,
                    "carbs_g": 0.2,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 168.4,
                  "macros": {
                    "kcal": 28.0,
                    "protein_g": 2.1,
                    "carbs_g": 5.6,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 165.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 165.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 7.0,
                    "protein_g": 0.3,
                    "carbs_g": 1.7,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 630.0,
                "protein_g": 77.1,
                "carbs_g": 9.2,
                "fat_g": 30.6
              }
            }
          }
        ],
        "total": {
          "kcal": 630.0,
          "protein_g": 77.1,
          "carbs_g": 9.2,
          "fat_g": 30.6
        },
        "delta_vs_target": {
          "kcal": 1.0,
          "protein_g": 0.05,
          "carbs_g": 0.03,
          "fat_g": -0.09
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L30",
        "name": "Carne com cebola estilo pot-roast + brócolis assado + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L30",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 361.3,
                  "macros": {
                    "kcal": 575.0,
                    "protein_g": 72.4,
                    "carbs_g": 0.0,
                    "fat_g": 29.5
                  },
                  "nutrition_basis_grams": 271.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 271.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 49.0,
                  "macros": {
                    "kcal": 7.0,
                    "protein_g": 0.8,
                    "carbs_g": 1.2,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 49.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 124.0,
                  "macros": {
                    "kcal": 33.0,
                    "protein_g": 3.4,
                    "carbs_g": 5.5,
                    "fat_g": 0.7
                  },
                  "nutrition_basis_grams": 124.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 124.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 26.0,
                  "macros": {
                    "kcal": 11.0,
                    "protein_g": 0.5,
                    "carbs_g": 2.4,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 26.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 626.0,
                "protein_g": 77.1,
                "carbs_g": 9.1,
                "fat_g": 30.3
              }
            }
          }
        ],
        "total": {
          "kcal": 626.0,
          "protein_g": 77.1,
          "carbs_g": 9.1,
          "fat_g": 30.3
        },
        "delta_vs_target": {
          "kcal": -3.0,
          "protein_g": 0.05,
          "carbs_g": -0.07,
          "fat_g": -0.39
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L33",
        "name": "Frango churrasco de limão e alho + vagem ao limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L33",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 324.7,
                  "macros": {
                    "kcal": 365.0,
                    "protein_g": 74.2,
                    "carbs_g": 0.0,
                    "fat_g": 7.5
                  },
                  "nutrition_basis_grams": 237.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 237.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 194.4,
                  "macros": {
                    "kcal": 40.0,
                    "protein_g": 2.8,
                    "carbs_g": 8.7,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 173.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 173.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 626.0,
                "protein_g": 77.6,
                "carbs_g": 9.6,
                "fat_g": 31.9
              }
            }
          }
        ],
        "total": {
          "kcal": 626.0,
          "protein_g": 77.6,
          "carbs_g": 9.6,
          "fat_g": 31.9
        },
        "delta_vs_target": {
          "kcal": -3.0,
          "protein_g": 0.55,
          "carbs_g": 0.43,
          "fat_g": 1.21
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L35",
        "name": "Paillard de frango com limão e ervas + vagem com alho + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L35",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 324.7,
                  "macros": {
                    "kcal": 365.0,
                    "protein_g": 74.2,
                    "carbs_g": 0.0,
                    "fat_g": 7.5
                  },
                  "nutrition_basis_grams": 237.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 237.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 194.4,
                  "macros": {
                    "kcal": 40.0,
                    "protein_g": 2.8,
                    "carbs_g": 8.7,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 173.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 173.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 626.0,
                "protein_g": 77.6,
                "carbs_g": 9.6,
                "fat_g": 31.9
              }
            }
          }
        ],
        "total": {
          "kcal": 626.0,
          "protein_g": 77.6,
          "carbs_g": 9.6,
          "fat_g": 31.9
        },
        "delta_vs_target": {
          "kcal": -3.0,
          "protein_g": 0.55,
          "carbs_g": 0.43,
          "fat_g": 1.21
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L36",
        "name": "Paillard de frango com limão e ervas + vagem com amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L36",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 324.7,
                  "macros": {
                    "kcal": 365.0,
                    "protein_g": 74.2,
                    "carbs_g": 0.0,
                    "fat_g": 7.5
                  },
                  "nutrition_basis_grams": 237.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 237.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 194.4,
                  "macros": {
                    "kcal": 40.0,
                    "protein_g": 2.8,
                    "carbs_g": 8.7,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 173.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 173.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 626.0,
                "protein_g": 77.6,
                "carbs_g": 9.6,
                "fat_g": 31.9
              }
            }
          }
        ],
        "total": {
          "kcal": 626.0,
          "protein_g": 77.6,
          "carbs_g": 9.6,
          "fat_g": 31.9
        },
        "delta_vs_target": {
          "kcal": -3.0,
          "protein_g": 0.55,
          "carbs_g": 0.43,
          "fat_g": 1.21
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L37",
        "name": "Frango ao limão e orégano + brócolis assado + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L37",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 315.1,
                  "macros": {
                    "kcal": 354.0,
                    "protein_g": 72.0,
                    "carbs_g": 0.0,
                    "fat_g": 7.3
                  },
                  "nutrition_basis_grams": 230.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 230.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 197.0,
                  "macros": {
                    "kcal": 53.0,
                    "protein_g": 5.3,
                    "carbs_g": 8.7,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 197.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 197.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 628.0,
                "protein_g": 77.9,
                "carbs_g": 9.6,
                "fat_g": 32.5
              }
            }
          }
        ],
        "total": {
          "kcal": 628.0,
          "protein_g": 77.9,
          "carbs_g": 9.6,
          "fat_g": 32.5
        },
        "delta_vs_target": {
          "kcal": -1.0,
          "protein_g": 0.85,
          "carbs_g": 0.43,
          "fat_g": 1.81
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L38",
        "name": "Frango ao limão e orégano + vagem com mostarda em grãos + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L38",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 324.7,
                  "macros": {
                    "kcal": 365.0,
                    "protein_g": 74.2,
                    "carbs_g": 0.0,
                    "fat_g": 7.5
                  },
                  "nutrition_basis_grams": 237.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 237.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 194.4,
                  "macros": {
                    "kcal": 40.0,
                    "protein_g": 2.8,
                    "carbs_g": 8.7,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 173.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 173.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 626.0,
                "protein_g": 77.6,
                "carbs_g": 9.6,
                "fat_g": 31.9
              }
            }
          }
        ],
        "total": {
          "kcal": 626.0,
          "protein_g": 77.6,
          "carbs_g": 9.6,
          "fat_g": 31.9
        },
        "delta_vs_target": {
          "kcal": -3.0,
          "protein_g": 0.55,
          "carbs_g": 0.43,
          "fat_g": 1.21
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L39",
        "name": "Frango ao limão e orégano + berinjela com tomate e iogurte + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L39",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 323.3,
                  "macros": {
                    "kcal": 363.0,
                    "protein_g": 73.9,
                    "carbs_g": 0.0,
                    "fat_g": 7.5
                  },
                  "nutrition_basis_grams": 236.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 236.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 23.0,
                    "protein_g": 1.8,
                    "carbs_g": 0.9,
                    "fat_g": 1.4
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 124.5,
                  "macros": {
                    "kcal": 30.0,
                    "protein_g": 0.9,
                    "carbs_g": 7.3,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 117.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 117.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.6,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 622.0,
                "protein_g": 77.4,
                "carbs_g": 9.7,
                "fat_g": 31.3
              }
            }
          }
        ],
        "total": {
          "kcal": 622.0,
          "protein_g": 77.4,
          "carbs_g": 9.7,
          "fat_g": 31.3
        },
        "delta_vs_target": {
          "kcal": -7.0,
          "protein_g": 0.35,
          "carbs_g": 0.53,
          "fat_g": 0.61
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L41",
        "name": "Frango tikka com iogurte zero lactose + vagem com alho + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L41",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 315.1,
                  "macros": {
                    "kcal": 354.0,
                    "protein_g": 72.0,
                    "carbs_g": 0.0,
                    "fat_g": 7.3
                  },
                  "nutrition_basis_grams": 230.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 230.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 31.0,
                    "protein_g": 2.5,
                    "carbs_g": 1.1,
                    "fat_g": 1.8
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 168.5,
                  "macros": {
                    "kcal": 34.0,
                    "protein_g": 2.4,
                    "carbs_g": 7.6,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 150.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 150.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 622.0,
                "protein_g": 77.5,
                "carbs_g": 9.6,
                "fat_g": 31.4
              }
            }
          }
        ],
        "total": {
          "kcal": 622.0,
          "protein_g": 77.5,
          "carbs_g": 9.6,
          "fat_g": 31.4
        },
        "delta_vs_target": {
          "kcal": -7.0,
          "protein_g": 0.45,
          "carbs_g": 0.43,
          "fat_g": 0.71
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L42",
        "name": "Frango tikka com iogurte zero lactose + purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L42",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 308.2,
                  "macros": {
                    "kcal": 346.0,
                    "protein_g": 70.4,
                    "carbs_g": 0.0,
                    "fat_g": 7.1
                  },
                  "nutrition_basis_grams": 225.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 225.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 95.0,
                  "macros": {
                    "kcal": 48.0,
                    "protein_g": 3.9,
                    "carbs_g": 1.8,
                    "fat_g": 2.8
                  },
                  "nutrition_basis_grams": 95.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 205.1,
                  "macros": {
                    "kcal": 34.0,
                    "protein_g": 2.6,
                    "carbs_g": 6.9,
                    "fat_g": 0.4
                  },
                  "nutrition_basis_grams": 201.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 201.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 21.0,
                  "macros": {
                    "kcal": 189.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 21.0
                  },
                  "nutrition_basis_grams": 21.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 622.0,
                "protein_g": 77.5,
                "carbs_g": 9.6,
                "fat_g": 31.4
              }
            }
          }
        ],
        "total": {
          "kcal": 622.0,
          "protein_g": 77.5,
          "carbs_g": 9.6,
          "fat_g": 31.4
        },
        "delta_vs_target": {
          "kcal": -7.0,
          "protein_g": 0.45,
          "carbs_g": 0.43,
          "fat_g": 0.71
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L43",
        "name": "Frango souvlaki + vagem com amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L43",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 317.8,
                  "macros": {
                    "kcal": 357.0,
                    "protein_g": 72.6,
                    "carbs_g": 0.0,
                    "fat_g": 7.3
                  },
                  "nutrition_basis_grams": 232.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 232.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 23.0,
                    "protein_g": 1.8,
                    "carbs_g": 0.9,
                    "fat_g": 1.4
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 174.2,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 2.5,
                    "carbs_g": 7.8,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 155.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 155.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 23.0,
                  "macros": {
                    "kcal": 207.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 23.0
                  },
                  "nutrition_basis_grams": 23.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 628.0,
                "protein_g": 77.5,
                "carbs_g": 9.6,
                "fat_g": 32.0
              }
            }
          }
        ],
        "total": {
          "kcal": 628.0,
          "protein_g": 77.5,
          "carbs_g": 9.6,
          "fat_g": 32.0
        },
        "delta_vs_target": {
          "kcal": -1.0,
          "protein_g": 0.45,
          "carbs_g": 0.43,
          "fat_g": 1.31
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L46",
        "name": "Frango gyros + berinjela com tomate e iogurte + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L46",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 319.2,
                  "macros": {
                    "kcal": 359.0,
                    "protein_g": 72.9,
                    "carbs_g": 0.0,
                    "fat_g": 7.4
                  },
                  "nutrition_basis_grams": 233.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 233.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 70.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 2.9,
                    "carbs_g": 1.3,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 70.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 117.0,
                  "macros": {
                    "kcal": 29.0,
                    "protein_g": 0.9,
                    "carbs_g": 6.8,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 110.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 110.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.6,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 630.0,
                "protein_g": 77.5,
                "carbs_g": 9.6,
                "fat_g": 31.9
              }
            }
          }
        ],
        "total": {
          "kcal": 630.0,
          "protein_g": 77.5,
          "carbs_g": 9.6,
          "fat_g": 31.9
        },
        "delta_vs_target": {
          "kcal": 1.0,
          "protein_g": 0.45,
          "carbs_g": 0.43,
          "fat_g": 1.21
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L48",
        "name": "Frango gyros + vagem com alho + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L48",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 317.8,
                  "macros": {
                    "kcal": 357.0,
                    "protein_g": 72.6,
                    "carbs_g": 0.0,
                    "fat_g": 7.3
                  },
                  "nutrition_basis_grams": 232.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 232.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 26.0,
                    "protein_g": 2.0,
                    "carbs_g": 0.9,
                    "fat_g": 1.5
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 173.0,
                  "macros": {
                    "kcal": 35.0,
                    "protein_g": 2.5,
                    "carbs_g": 7.8,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 154.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 154.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 23.0,
                  "macros": {
                    "kcal": 207.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 23.0
                  },
                  "nutrition_basis_grams": 23.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 630.0,
                "protein_g": 77.7,
                "carbs_g": 9.6,
                "fat_g": 32.1
              }
            }
          }
        ],
        "total": {
          "kcal": 630.0,
          "protein_g": 77.7,
          "carbs_g": 9.6,
          "fat_g": 32.1
        },
        "delta_vs_target": {
          "kcal": 1.0,
          "protein_g": 0.65,
          "carbs_g": 0.43,
          "fat_g": 1.41
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L49",
        "name": "Frango jerk + berinjela com tomate e iogurte + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-L49",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 323.3,
                  "macros": {
                    "kcal": 363.0,
                    "protein_g": 73.9,
                    "carbs_g": 0.0,
                    "fat_g": 7.5
                  },
                  "nutrition_basis_grams": 236.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 236.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 23.0,
                    "protein_g": 1.8,
                    "carbs_g": 0.9,
                    "fat_g": 1.4
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 124.5,
                  "macros": {
                    "kcal": 30.0,
                    "protein_g": 0.9,
                    "carbs_g": 7.3,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 117.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 117.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.6,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 622.0,
                "protein_g": 77.4,
                "carbs_g": 9.7,
                "fat_g": 31.3
              }
            }
          }
        ],
        "total": {
          "kcal": 622.0,
          "protein_g": 77.4,
          "carbs_g": 9.7,
          "fat_g": 31.3
        },
        "delta_vs_target": {
          "kcal": -7.0,
          "protein_g": 0.35,
          "carbs_g": 0.53,
          "fat_g": 0.61
        },
        "origin": "legacy_docx"
      },
      {
        "id": "L032",
        "name": "Strogonoff bovino leve + Purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 90.9,
                  "macros": {
                    "kcal": 15.2,
                    "protein_g": 1.05,
                    "carbs_g": 1.8,
                    "fat_g": 0.17
                  },
                  "nutrition_basis_grams": 40.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 40.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 360.0,
                  "macros": {
                    "kcal": 572.4,
                    "protein_g": 72.09,
                    "carbs_g": 0.0,
                    "fat_g": 29.43
                  },
                  "nutrition_basis_grams": 270.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 270.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 595.25,
                "protein_g": 73.75,
                "carbs_g": 2.08,
                "fat_g": 30.05
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 172.4,
                  "macros": {
                    "kcal": 28.73,
                    "protein_g": 2.16,
                    "carbs_g": 5.76,
                    "fat_g": 0.34
                  },
                  "nutrition_basis_grams": 169.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 169.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 28.73,
                "protein_g": 2.16,
                "carbs_g": 5.76,
                "fat_g": 0.34
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 630.83,
          "protein_g": 76.76,
          "carbs_g": 9.11,
          "fat_g": 30.46
        },
        "delta_vs_target": {
          "kcal": 1.83,
          "protein_g": -0.29,
          "carbs_g": -0.06,
          "fat_g": -0.23
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L033",
        "name": "Strogonoff bovino leve + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 90.9,
                  "macros": {
                    "kcal": 15.2,
                    "protein_g": 1.05,
                    "carbs_g": 1.8,
                    "fat_g": 0.17
                  },
                  "nutrition_basis_grams": 40.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 40.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 348.0,
                  "macros": {
                    "kcal": 553.32,
                    "protein_g": 69.69,
                    "carbs_g": 0.0,
                    "fat_g": 28.45
                  },
                  "nutrition_basis_grams": 261.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 261.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 576.17,
                "protein_g": 71.35,
                "carbs_g": 2.08,
                "fat_g": 29.07
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 101.1,
                  "macros": {
                    "kcal": 20.7,
                    "protein_g": 1.44,
                    "carbs_g": 4.54,
                    "fat_g": 0.14
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 90.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 55.56,
                "protein_g": 2.56,
                "carbs_g": 6.31,
                "fat_g": 2.98
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 638.58,
          "protein_g": 74.76,
          "carbs_g": 9.66,
          "fat_g": 32.12
        },
        "delta_vs_target": {
          "kcal": 9.58,
          "protein_g": -2.29,
          "carbs_g": 0.49,
          "fat_g": 1.43
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L034",
        "name": "Strogonoff bovino leve + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 90.9,
                  "macros": {
                    "kcal": 15.2,
                    "protein_g": 1.05,
                    "carbs_g": 1.8,
                    "fat_g": 0.17
                  },
                  "nutrition_basis_grams": 40.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 40.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 354.7,
                  "macros": {
                    "kcal": 563.92,
                    "protein_g": 71.02,
                    "carbs_g": 0.0,
                    "fat_g": 28.99
                  },
                  "nutrition_basis_grams": 266.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 266.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 586.77,
                "protein_g": 72.68,
                "carbs_g": 2.08,
                "fat_g": 29.61
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 131.0,
                  "macros": {
                    "kcal": 35.37,
                    "protein_g": 3.55,
                    "carbs_g": 5.82,
                    "fat_g": 0.71
                  },
                  "nutrition_basis_grams": 131.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 131.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 35.37,
                "protein_g": 3.55,
                "carbs_g": 5.82,
                "fat_g": 0.71
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 628.99,
          "protein_g": 77.08,
          "carbs_g": 9.17,
          "fat_g": 30.39
        },
        "delta_vs_target": {
          "kcal": -0.01,
          "protein_g": 0.03,
          "carbs_g": 0.0,
          "fat_g": -0.3
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L035",
        "name": "Strogonoff bovino leve + Arroz de couve-flor com cominho e coentro + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 90.9,
                  "macros": {
                    "kcal": 15.2,
                    "protein_g": 1.05,
                    "carbs_g": 1.8,
                    "fat_g": 0.17
                  },
                  "nutrition_basis_grams": 40.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 40.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 360.0,
                  "macros": {
                    "kcal": 572.4,
                    "protein_g": 72.09,
                    "carbs_g": 0.0,
                    "fat_g": 29.43
                  },
                  "nutrition_basis_grams": 270.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 270.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 595.25,
                "protein_g": 73.75,
                "carbs_g": 2.08,
                "fat_g": 30.05
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 172.4,
                  "macros": {
                    "kcal": 28.73,
                    "protein_g": 2.16,
                    "carbs_g": 5.76,
                    "fat_g": 0.34
                  },
                  "nutrition_basis_grams": 169.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 169.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 28.73,
                "protein_g": 2.16,
                "carbs_g": 5.76,
                "fat_g": 0.34
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 630.83,
          "protein_g": 76.76,
          "carbs_g": 9.11,
          "fat_g": 30.46
        },
        "delta_vs_target": {
          "kcal": 1.83,
          "protein_g": -0.29,
          "carbs_g": -0.06,
          "fat_g": -0.23
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L036",
        "name": "Strogonoff bovino leve + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 90.9,
                  "macros": {
                    "kcal": 15.2,
                    "protein_g": 1.05,
                    "carbs_g": 1.8,
                    "fat_g": 0.17
                  },
                  "nutrition_basis_grams": 40.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 40.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 362.7,
                  "macros": {
                    "kcal": 576.64,
                    "protein_g": 72.62,
                    "carbs_g": 0.0,
                    "fat_g": 29.65
                  },
                  "nutrition_basis_grams": 272.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 272.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 599.49,
                "protein_g": 74.28,
                "carbs_g": 2.08,
                "fat_g": 30.27
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 514.3,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.74,
                    "carbs_g": 5.73,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 144.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 144.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 24.48,
                "protein_g": 1.74,
                "carbs_g": 5.73,
                "fat_g": 0.2
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 630.82,
          "protein_g": 76.87,
          "carbs_g": 9.08,
          "fat_g": 30.54
        },
        "delta_vs_target": {
          "kcal": 1.82,
          "protein_g": -0.18,
          "carbs_g": -0.09,
          "fat_g": -0.15
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L037",
        "name": "Strogonoff bovino leve + Vagem com limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 90.9,
                  "macros": {
                    "kcal": 15.2,
                    "protein_g": 1.05,
                    "carbs_g": 1.8,
                    "fat_g": 0.17
                  },
                  "nutrition_basis_grams": 40.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 40.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 348.0,
                  "macros": {
                    "kcal": 553.32,
                    "protein_g": 69.69,
                    "carbs_g": 0.0,
                    "fat_g": 28.45
                  },
                  "nutrition_basis_grams": 261.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 261.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 576.17,
                "protein_g": 71.35,
                "carbs_g": 2.08,
                "fat_g": 29.07
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 123.6,
                  "macros": {
                    "kcal": 25.3,
                    "protein_g": 1.76,
                    "carbs_g": 5.54,
                    "fat_g": 0.17
                  },
                  "nutrition_basis_grams": 110.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 110.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 52.18,
                "protein_g": 3.67,
                "carbs_g": 5.69,
                "fat_g": 2.27
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 635.2,
          "protein_g": 75.87,
          "carbs_g": 9.04,
          "fat_g": 31.41
        },
        "delta_vs_target": {
          "kcal": 6.2,
          "protein_g": -1.18,
          "carbs_g": -0.13,
          "fat_g": 0.72
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L038",
        "name": "Strogonoff bovino leve + Brócolis com ervas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 90.9,
                  "macros": {
                    "kcal": 15.2,
                    "protein_g": 1.05,
                    "carbs_g": 1.8,
                    "fat_g": 0.17
                  },
                  "nutrition_basis_grams": 40.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 40.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 354.7,
                  "macros": {
                    "kcal": 563.92,
                    "protein_g": 71.02,
                    "carbs_g": 0.0,
                    "fat_g": 28.99
                  },
                  "nutrition_basis_grams": 266.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 266.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 586.77,
                "protein_g": 72.68,
                "carbs_g": 2.08,
                "fat_g": 29.61
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 131.0,
                  "macros": {
                    "kcal": 35.37,
                    "protein_g": 3.55,
                    "carbs_g": 5.82,
                    "fat_g": 0.71
                  },
                  "nutrition_basis_grams": 131.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 131.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 35.37,
                "protein_g": 3.55,
                "carbs_g": 5.82,
                "fat_g": 0.71
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 628.99,
          "protein_g": 77.08,
          "carbs_g": 9.17,
          "fat_g": 30.39
        },
        "delta_vs_target": {
          "kcal": -0.01,
          "protein_g": 0.03,
          "carbs_g": 0.0,
          "fat_g": -0.3
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L039",
        "name": "Bife com chimichurri + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 307.7,
                  "macros": {
                    "kcal": 422.0,
                    "protein_g": 72.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 200.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 200.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 566.0,
                "protein_g": 72.0,
                "carbs_g": 0.0,
                "fat_g": 31.0
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 182.0,
                  "macros": {
                    "kcal": 49.14,
                    "protein_g": 4.93,
                    "carbs_g": 8.08,
                    "fat_g": 0.98
                  },
                  "nutrition_basis_grams": 182.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 182.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 49.14,
                "protein_g": 4.93,
                "carbs_g": 8.08,
                "fat_g": 0.98
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 621.99,
          "protein_g": 77.78,
          "carbs_g": 9.35,
          "fat_g": 32.05
        },
        "delta_vs_target": {
          "kcal": -7.01,
          "protein_g": 0.73,
          "carbs_g": 0.18,
          "fat_g": 1.36
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L040",
        "name": "Bife com chimichurri + Couve-flor assada com especiarias + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 315.4,
                  "macros": {
                    "kcal": 432.55,
                    "protein_g": 73.8,
                    "carbs_g": 0.0,
                    "fat_g": 15.37
                  },
                  "nutrition_basis_grams": 205.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 205.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 576.55,
                "protein_g": 73.8,
                "carbs_g": 0.0,
                "fat_g": 31.37
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 240.8,
                  "macros": {
                    "kcal": 40.12,
                    "protein_g": 3.02,
                    "carbs_g": 8.05,
                    "fat_g": 0.47
                  },
                  "nutrition_basis_grams": 236.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 236.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 40.12,
                "protein_g": 3.02,
                "carbs_g": 8.05,
                "fat_g": 0.47
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 623.52,
          "protein_g": 77.67,
          "carbs_g": 9.32,
          "fat_g": 31.91
        },
        "delta_vs_target": {
          "kcal": -5.48,
          "protein_g": 0.62,
          "carbs_g": 0.15,
          "fat_g": 1.22
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L041",
        "name": "Bife com chimichurri + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 315.4,
                  "macros": {
                    "kcal": 432.55,
                    "protein_g": 73.8,
                    "carbs_g": 0.0,
                    "fat_g": 15.37
                  },
                  "nutrition_basis_grams": 205.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 205.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 13.0,
                  "macros": {
                    "kcal": 117.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 13.0
                  },
                  "nutrition_basis_grams": 13.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 549.55,
                "protein_g": 73.8,
                "carbs_g": 0.0,
                "fat_g": 28.37
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 142.7,
                  "macros": {
                    "kcal": 29.21,
                    "protein_g": 2.03,
                    "carbs_g": 6.4,
                    "fat_g": 0.19
                  },
                  "nutrition_basis_grams": 127.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 127.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 64.07,
                "protein_g": 3.15,
                "carbs_g": 8.17,
                "fat_g": 3.03
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 620.47,
          "protein_g": 77.8,
          "carbs_g": 9.44,
          "fat_g": 31.47
        },
        "delta_vs_target": {
          "kcal": -8.53,
          "protein_g": 0.75,
          "carbs_g": 0.27,
          "fat_g": 0.78
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L042",
        "name": "Bife com chimichurri + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 310.8,
                  "macros": {
                    "kcal": 426.22,
                    "protein_g": 72.72,
                    "carbs_g": 0.0,
                    "fat_g": 15.15
                  },
                  "nutrition_basis_grams": 202.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 202.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 552.22,
                "protein_g": 72.72,
                "carbs_g": 0.0,
                "fat_g": 29.15
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 717.9,
                  "macros": {
                    "kcal": 34.17,
                    "protein_g": 2.43,
                    "carbs_g": 8.0,
                    "fat_g": 0.28
                  },
                  "nutrition_basis_grams": 201.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 201.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 61.05,
                "protein_g": 4.34,
                "carbs_g": 8.15,
                "fat_g": 2.38
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 620.12,
          "protein_g": 77.91,
          "carbs_g": 9.42,
          "fat_g": 31.6
        },
        "delta_vs_target": {
          "kcal": -8.88,
          "protein_g": 0.86,
          "carbs_g": 0.25,
          "fat_g": 0.91
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L043",
        "name": "Bife com chimichurri + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 318.5,
                  "macros": {
                    "kcal": 436.77,
                    "protein_g": 74.52,
                    "carbs_g": 0.0,
                    "fat_g": 15.52
                  },
                  "nutrition_basis_grams": 207.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 207.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 580.77,
                "protein_g": 74.52,
                "carbs_g": 0.0,
                "fat_g": 31.52
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 725.0,
                  "macros": {
                    "kcal": 34.51,
                    "protein_g": 2.46,
                    "carbs_g": 8.08,
                    "fat_g": 0.28
                  },
                  "nutrition_basis_grams": 203.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 203.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 34.51,
                "protein_g": 2.46,
                "carbs_g": 8.08,
                "fat_g": 0.28
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 622.13,
          "protein_g": 77.83,
          "carbs_g": 9.35,
          "fat_g": 31.87
        },
        "delta_vs_target": {
          "kcal": -6.87,
          "protein_g": 0.78,
          "carbs_g": 0.18,
          "fat_g": 1.18
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L044",
        "name": "Bife com chimichurri + Vagem com limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 310.8,
                  "macros": {
                    "kcal": 426.22,
                    "protein_g": 72.72,
                    "carbs_g": 0.0,
                    "fat_g": 15.15
                  },
                  "nutrition_basis_grams": 202.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 202.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 552.22,
                "protein_g": 72.72,
                "carbs_g": 0.0,
                "fat_g": 29.15
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 176.4,
                  "macros": {
                    "kcal": 36.11,
                    "protein_g": 2.51,
                    "carbs_g": 7.91,
                    "fat_g": 0.24
                  },
                  "nutrition_basis_grams": 157.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 157.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 62.99,
                "protein_g": 4.42,
                "carbs_g": 8.06,
                "fat_g": 2.34
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 622.06,
          "protein_g": 77.99,
          "carbs_g": 9.33,
          "fat_g": 31.56
        },
        "delta_vs_target": {
          "kcal": -6.94,
          "protein_g": 0.94,
          "carbs_g": 0.16,
          "fat_g": 0.87
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L045",
        "name": "Bife com chimichurri + Berinjela assada com tomate e manjericão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 321.5,
                  "macros": {
                    "kcal": 440.99,
                    "protein_g": 75.24,
                    "carbs_g": 0.0,
                    "fat_g": 15.67
                  },
                  "nutrition_basis_grams": 209.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 209.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 584.99,
                "protein_g": 75.24,
                "carbs_g": 0.0,
                "fat_g": 31.67
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.4,
                    "protein_g": 0.31,
                    "carbs_g": 1.15,
                    "fat_g": 0.05
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 117.0,
                  "macros": {
                    "kcal": 28.6,
                    "protein_g": 0.87,
                    "carbs_g": 6.82,
                    "fat_g": 0.26
                  },
                  "nutrition_basis_grams": 110.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 110.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 34.0,
                "protein_g": 1.18,
                "carbs_g": 7.97,
                "fat_g": 0.31
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 625.84,
          "protein_g": 77.27,
          "carbs_g": 9.24,
          "fat_g": 32.05
        },
        "delta_vs_target": {
          "kcal": -3.16,
          "protein_g": 0.22,
          "carbs_g": 0.07,
          "fat_g": 1.36
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L046",
        "name": "Bife ao miso + Vagem com gergelim e gengibre + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 316.9,
                  "macros": {
                    "kcal": 434.66,
                    "protein_g": 74.16,
                    "carbs_g": 0.0,
                    "fat_g": 15.45
                  },
                  "nutrition_basis_grams": 206.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 206.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 578.66,
                "protein_g": 74.16,
                "carbs_g": 0.0,
                "fat_g": 31.45
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 180.9,
                  "macros": {
                    "kcal": 37.03,
                    "protein_g": 2.58,
                    "carbs_g": 8.11,
                    "fat_g": 0.24
                  },
                  "nutrition_basis_grams": 161.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 161.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 37.03,
                "protein_g": 2.58,
                "carbs_g": 8.11,
                "fat_g": 0.24
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 622.54,
          "protein_g": 77.59,
          "carbs_g": 9.38,
          "fat_g": 31.76
        },
        "delta_vs_target": {
          "kcal": -6.46,
          "protein_g": 0.54,
          "carbs_g": 0.21,
          "fat_g": 1.07
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L047",
        "name": "Bife ao miso + Arroz de couve-flor com cominho e coentro + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 315.4,
                  "macros": {
                    "kcal": 432.55,
                    "protein_g": 73.8,
                    "carbs_g": 0.0,
                    "fat_g": 15.37
                  },
                  "nutrition_basis_grams": 205.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 205.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 576.55,
                "protein_g": 73.8,
                "carbs_g": 0.0,
                "fat_g": 31.37
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 240.8,
                  "macros": {
                    "kcal": 40.12,
                    "protein_g": 3.02,
                    "carbs_g": 8.05,
                    "fat_g": 0.47
                  },
                  "nutrition_basis_grams": 236.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 236.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 40.12,
                "protein_g": 3.02,
                "carbs_g": 8.05,
                "fat_g": 0.47
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 623.52,
          "protein_g": 77.67,
          "carbs_g": 9.32,
          "fat_g": 31.91
        },
        "delta_vs_target": {
          "kcal": -5.48,
          "protein_g": 0.62,
          "carbs_g": 0.15,
          "fat_g": 1.22
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L048",
        "name": "Bife ao miso + Brócolis com ervas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 307.7,
                  "macros": {
                    "kcal": 422.0,
                    "protein_g": 72.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 200.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 200.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 566.0,
                "protein_g": 72.0,
                "carbs_g": 0.0,
                "fat_g": 31.0
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 182.0,
                  "macros": {
                    "kcal": 49.14,
                    "protein_g": 4.93,
                    "carbs_g": 8.08,
                    "fat_g": 0.98
                  },
                  "nutrition_basis_grams": 182.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 182.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 49.14,
                "protein_g": 4.93,
                "carbs_g": 8.08,
                "fat_g": 0.98
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 621.99,
          "protein_g": 77.78,
          "carbs_g": 9.35,
          "fat_g": 32.05
        },
        "delta_vs_target": {
          "kcal": -7.01,
          "protein_g": 0.73,
          "carbs_g": 0.18,
          "fat_g": 1.36
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L049",
        "name": "Bife ao miso + Couve-flor assada com especiarias + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 315.4,
                  "macros": {
                    "kcal": 432.55,
                    "protein_g": 73.8,
                    "carbs_g": 0.0,
                    "fat_g": 15.37
                  },
                  "nutrition_basis_grams": 205.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 205.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 576.55,
                "protein_g": 73.8,
                "carbs_g": 0.0,
                "fat_g": 31.37
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 240.8,
                  "macros": {
                    "kcal": 40.12,
                    "protein_g": 3.02,
                    "carbs_g": 8.05,
                    "fat_g": 0.47
                  },
                  "nutrition_basis_grams": 236.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 236.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 40.12,
                "protein_g": 3.02,
                "carbs_g": 8.05,
                "fat_g": 0.47
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 623.52,
          "protein_g": 77.67,
          "carbs_g": 9.32,
          "fat_g": 31.91
        },
        "delta_vs_target": {
          "kcal": -5.48,
          "protein_g": 0.62,
          "carbs_g": 0.15,
          "fat_g": 1.22
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L050",
        "name": "Bife ao miso + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 315.4,
                  "macros": {
                    "kcal": 432.55,
                    "protein_g": 73.8,
                    "carbs_g": 0.0,
                    "fat_g": 15.37
                  },
                  "nutrition_basis_grams": 205.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 205.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 13.0,
                  "macros": {
                    "kcal": 117.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 13.0
                  },
                  "nutrition_basis_grams": 13.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 549.55,
                "protein_g": 73.8,
                "carbs_g": 0.0,
                "fat_g": 28.37
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 142.7,
                  "macros": {
                    "kcal": 29.21,
                    "protein_g": 2.03,
                    "carbs_g": 6.4,
                    "fat_g": 0.19
                  },
                  "nutrition_basis_grams": 127.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 127.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 64.07,
                "protein_g": 3.15,
                "carbs_g": 8.17,
                "fat_g": 3.03
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 620.47,
          "protein_g": 77.8,
          "carbs_g": 9.44,
          "fat_g": 31.47
        },
        "delta_vs_target": {
          "kcal": -8.53,
          "protein_g": 0.75,
          "carbs_g": 0.27,
          "fat_g": 0.78
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L051",
        "name": "Bife ao miso + Cogumelos ao alho e ervas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 306.2,
                  "macros": {
                    "kcal": 419.89,
                    "protein_g": 71.64,
                    "carbs_g": 0.0,
                    "fat_g": 14.93
                  },
                  "nutrition_basis_grams": 199.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 199.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 554.89,
                "protein_g": 71.64,
                "carbs_g": 0.0,
                "fat_g": 29.93
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 400.0,
                  "macros": {
                    "kcal": 66.88,
                    "protein_g": 4.63,
                    "carbs_g": 7.94,
                    "fat_g": 0.76
                  },
                  "nutrition_basis_grams": 176.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 176.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 66.88,
                "protein_g": 4.63,
                "carbs_g": 7.94,
                "fat_g": 0.76
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 628.62,
          "protein_g": 77.12,
          "carbs_g": 9.21,
          "fat_g": 30.76
        },
        "delta_vs_target": {
          "kcal": -0.38,
          "protein_g": 0.07,
          "carbs_g": 0.04,
          "fat_g": 0.07
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L052",
        "name": "Bife ao miso + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 318.5,
                  "macros": {
                    "kcal": 436.77,
                    "protein_g": 74.52,
                    "carbs_g": 0.0,
                    "fat_g": 15.52
                  },
                  "nutrition_basis_grams": 207.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 207.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 580.77,
                "protein_g": 74.52,
                "carbs_g": 0.0,
                "fat_g": 31.52
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 725.0,
                  "macros": {
                    "kcal": 34.51,
                    "protein_g": 2.46,
                    "carbs_g": 8.08,
                    "fat_g": 0.28
                  },
                  "nutrition_basis_grams": 203.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 203.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 34.51,
                "protein_g": 2.46,
                "carbs_g": 8.08,
                "fat_g": 0.28
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 622.13,
          "protein_g": 77.83,
          "carbs_g": 9.35,
          "fat_g": 31.87
        },
        "delta_vs_target": {
          "kcal": -6.87,
          "protein_g": 0.78,
          "carbs_g": 0.18,
          "fat_g": 1.18
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L053",
        "name": "Bife simples na chapa + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 307.7,
                  "macros": {
                    "kcal": 422.0,
                    "protein_g": 72.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 200.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 200.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 566.0,
                "protein_g": 72.0,
                "carbs_g": 0.0,
                "fat_g": 31.0
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 182.0,
                  "macros": {
                    "kcal": 49.14,
                    "protein_g": 4.93,
                    "carbs_g": 8.08,
                    "fat_g": 0.98
                  },
                  "nutrition_basis_grams": 182.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 182.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 49.14,
                "protein_g": 4.93,
                "carbs_g": 8.08,
                "fat_g": 0.98
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 621.99,
          "protein_g": 77.78,
          "carbs_g": 9.35,
          "fat_g": 32.05
        },
        "delta_vs_target": {
          "kcal": -7.01,
          "protein_g": 0.73,
          "carbs_g": 0.18,
          "fat_g": 1.36
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L054",
        "name": "Bife simples na chapa + Purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 315.4,
                  "macros": {
                    "kcal": 432.55,
                    "protein_g": 73.8,
                    "carbs_g": 0.0,
                    "fat_g": 15.37
                  },
                  "nutrition_basis_grams": 205.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 205.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 576.55,
                "protein_g": 73.8,
                "carbs_g": 0.0,
                "fat_g": 31.37
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 240.8,
                  "macros": {
                    "kcal": 40.12,
                    "protein_g": 3.02,
                    "carbs_g": 8.05,
                    "fat_g": 0.47
                  },
                  "nutrition_basis_grams": 236.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 236.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 40.12,
                "protein_g": 3.02,
                "carbs_g": 8.05,
                "fat_g": 0.47
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 623.52,
          "protein_g": 77.67,
          "carbs_g": 9.32,
          "fat_g": 31.91
        },
        "delta_vs_target": {
          "kcal": -5.48,
          "protein_g": 0.62,
          "carbs_g": 0.15,
          "fat_g": 1.22
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L055",
        "name": "Bife simples na chapa + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 315.4,
                  "macros": {
                    "kcal": 432.55,
                    "protein_g": 73.8,
                    "carbs_g": 0.0,
                    "fat_g": 15.37
                  },
                  "nutrition_basis_grams": 205.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 205.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 13.0,
                  "macros": {
                    "kcal": 117.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 13.0
                  },
                  "nutrition_basis_grams": 13.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 549.55,
                "protein_g": 73.8,
                "carbs_g": 0.0,
                "fat_g": 28.37
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 142.7,
                  "macros": {
                    "kcal": 29.21,
                    "protein_g": 2.03,
                    "carbs_g": 6.4,
                    "fat_g": 0.19
                  },
                  "nutrition_basis_grams": 127.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 127.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 64.07,
                "protein_g": 3.15,
                "carbs_g": 8.17,
                "fat_g": 3.03
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 620.47,
          "protein_g": 77.8,
          "carbs_g": 9.44,
          "fat_g": 31.47
        },
        "delta_vs_target": {
          "kcal": -8.53,
          "protein_g": 0.75,
          "carbs_g": 0.27,
          "fat_g": 0.78
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L056",
        "name": "Bife simples na chapa + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 310.8,
                  "macros": {
                    "kcal": 426.22,
                    "protein_g": 72.72,
                    "carbs_g": 0.0,
                    "fat_g": 15.15
                  },
                  "nutrition_basis_grams": 202.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 202.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 552.22,
                "protein_g": 72.72,
                "carbs_g": 0.0,
                "fat_g": 29.15
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 717.9,
                  "macros": {
                    "kcal": 34.17,
                    "protein_g": 2.43,
                    "carbs_g": 8.0,
                    "fat_g": 0.28
                  },
                  "nutrition_basis_grams": 201.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 201.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 61.05,
                "protein_g": 4.34,
                "carbs_g": 8.15,
                "fat_g": 2.38
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 620.12,
          "protein_g": 77.91,
          "carbs_g": 9.42,
          "fat_g": 31.6
        },
        "delta_vs_target": {
          "kcal": -8.88,
          "protein_g": 0.86,
          "carbs_g": 0.25,
          "fat_g": 0.91
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L057",
        "name": "Bife simples na chapa + Cogumelos ao alho e ervas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 306.2,
                  "macros": {
                    "kcal": 419.89,
                    "protein_g": 71.64,
                    "carbs_g": 0.0,
                    "fat_g": 14.93
                  },
                  "nutrition_basis_grams": 199.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 199.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 554.89,
                "protein_g": 71.64,
                "carbs_g": 0.0,
                "fat_g": 29.93
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 400.0,
                  "macros": {
                    "kcal": 66.88,
                    "protein_g": 4.63,
                    "carbs_g": 7.94,
                    "fat_g": 0.76
                  },
                  "nutrition_basis_grams": 176.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 176.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 66.88,
                "protein_g": 4.63,
                "carbs_g": 7.94,
                "fat_g": 0.76
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 628.62,
          "protein_g": 77.12,
          "carbs_g": 9.21,
          "fat_g": 30.76
        },
        "delta_vs_target": {
          "kcal": -0.38,
          "protein_g": 0.07,
          "carbs_g": 0.04,
          "fat_g": 0.07
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L058",
        "name": "Bife simples na chapa + Vagem com limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 310.8,
                  "macros": {
                    "kcal": 426.22,
                    "protein_g": 72.72,
                    "carbs_g": 0.0,
                    "fat_g": 15.15
                  },
                  "nutrition_basis_grams": 202.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 202.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 552.22,
                "protein_g": 72.72,
                "carbs_g": 0.0,
                "fat_g": 29.15
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 176.4,
                  "macros": {
                    "kcal": 36.11,
                    "protein_g": 2.51,
                    "carbs_g": 7.91,
                    "fat_g": 0.24
                  },
                  "nutrition_basis_grams": 157.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 157.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 62.99,
                "protein_g": 4.42,
                "carbs_g": 8.06,
                "fat_g": 2.34
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 622.06,
          "protein_g": 77.99,
          "carbs_g": 9.33,
          "fat_g": 31.56
        },
        "delta_vs_target": {
          "kcal": -6.94,
          "protein_g": 0.94,
          "carbs_g": 0.16,
          "fat_g": 0.87
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L059",
        "name": "Bife simples na chapa + Berinjela assada com tomate e manjericão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 321.5,
                  "macros": {
                    "kcal": 440.99,
                    "protein_g": 75.24,
                    "carbs_g": 0.0,
                    "fat_g": 15.67
                  },
                  "nutrition_basis_grams": 209.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 209.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 584.99,
                "protein_g": 75.24,
                "carbs_g": 0.0,
                "fat_g": 31.67
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.4,
                    "protein_g": 0.31,
                    "carbs_g": 1.15,
                    "fat_g": 0.05
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 117.0,
                  "macros": {
                    "kcal": 28.6,
                    "protein_g": 0.87,
                    "carbs_g": 6.82,
                    "fat_g": 0.26
                  },
                  "nutrition_basis_grams": 110.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 110.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 34.0,
                "protein_g": 1.18,
                "carbs_g": 7.97,
                "fat_g": 0.31
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 625.84,
          "protein_g": 77.27,
          "carbs_g": 9.24,
          "fat_g": 32.05
        },
        "delta_vs_target": {
          "kcal": -3.16,
          "protein_g": 0.22,
          "carbs_g": 0.07,
          "fat_g": 1.36
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L060",
        "name": "Bife apimentado + Purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 315.4,
                  "macros": {
                    "kcal": 432.55,
                    "protein_g": 73.8,
                    "carbs_g": 0.0,
                    "fat_g": 15.37
                  },
                  "nutrition_basis_grams": 205.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 205.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 576.55,
                "protein_g": 73.8,
                "carbs_g": 0.0,
                "fat_g": 31.37
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 240.8,
                  "macros": {
                    "kcal": 40.12,
                    "protein_g": 3.02,
                    "carbs_g": 8.05,
                    "fat_g": 0.47
                  },
                  "nutrition_basis_grams": 236.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 236.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 40.12,
                "protein_g": 3.02,
                "carbs_g": 8.05,
                "fat_g": 0.47
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 623.52,
          "protein_g": 77.67,
          "carbs_g": 9.32,
          "fat_g": 31.91
        },
        "delta_vs_target": {
          "kcal": -5.48,
          "protein_g": 0.62,
          "carbs_g": 0.15,
          "fat_g": 1.22
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L061",
        "name": "Bife apimentado + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 315.4,
                  "macros": {
                    "kcal": 432.55,
                    "protein_g": 73.8,
                    "carbs_g": 0.0,
                    "fat_g": 15.37
                  },
                  "nutrition_basis_grams": 205.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 205.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 13.0,
                  "macros": {
                    "kcal": 117.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 13.0
                  },
                  "nutrition_basis_grams": 13.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 549.55,
                "protein_g": 73.8,
                "carbs_g": 0.0,
                "fat_g": 28.37
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 142.7,
                  "macros": {
                    "kcal": 29.21,
                    "protein_g": 2.03,
                    "carbs_g": 6.4,
                    "fat_g": 0.19
                  },
                  "nutrition_basis_grams": 127.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 127.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 64.07,
                "protein_g": 3.15,
                "carbs_g": 8.17,
                "fat_g": 3.03
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 620.47,
          "protein_g": 77.8,
          "carbs_g": 9.44,
          "fat_g": 31.47
        },
        "delta_vs_target": {
          "kcal": -8.53,
          "protein_g": 0.75,
          "carbs_g": 0.27,
          "fat_g": 0.78
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L062",
        "name": "Bife apimentado + Cogumelos ao alho e ervas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 306.2,
                  "macros": {
                    "kcal": 419.89,
                    "protein_g": 71.64,
                    "carbs_g": 0.0,
                    "fat_g": 14.93
                  },
                  "nutrition_basis_grams": 199.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 199.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 554.89,
                "protein_g": 71.64,
                "carbs_g": 0.0,
                "fat_g": 29.93
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 400.0,
                  "macros": {
                    "kcal": 66.88,
                    "protein_g": 4.63,
                    "carbs_g": 7.94,
                    "fat_g": 0.76
                  },
                  "nutrition_basis_grams": 176.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 176.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 66.88,
                "protein_g": 4.63,
                "carbs_g": 7.94,
                "fat_g": 0.76
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 628.62,
          "protein_g": 77.12,
          "carbs_g": 9.21,
          "fat_g": 30.76
        },
        "delta_vs_target": {
          "kcal": -0.38,
          "protein_g": 0.07,
          "carbs_g": 0.04,
          "fat_g": 0.07
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L063",
        "name": "Bife apimentado + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 307.7,
                  "macros": {
                    "kcal": 422.0,
                    "protein_g": 72.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 200.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 200.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 566.0,
                "protein_g": 72.0,
                "carbs_g": 0.0,
                "fat_g": 31.0
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 182.0,
                  "macros": {
                    "kcal": 49.14,
                    "protein_g": 4.93,
                    "carbs_g": 8.08,
                    "fat_g": 0.98
                  },
                  "nutrition_basis_grams": 182.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 182.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 49.14,
                "protein_g": 4.93,
                "carbs_g": 8.08,
                "fat_g": 0.98
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 621.99,
          "protein_g": 77.78,
          "carbs_g": 9.35,
          "fat_g": 32.05
        },
        "delta_vs_target": {
          "kcal": -7.01,
          "protein_g": 0.73,
          "carbs_g": 0.18,
          "fat_g": 1.36
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L064",
        "name": "Bife apimentado + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 318.5,
                  "macros": {
                    "kcal": 436.77,
                    "protein_g": 74.52,
                    "carbs_g": 0.0,
                    "fat_g": 15.52
                  },
                  "nutrition_basis_grams": 207.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 207.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 580.77,
                "protein_g": 74.52,
                "carbs_g": 0.0,
                "fat_g": 31.52
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 725.0,
                  "macros": {
                    "kcal": 34.51,
                    "protein_g": 2.46,
                    "carbs_g": 8.08,
                    "fat_g": 0.28
                  },
                  "nutrition_basis_grams": 203.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 203.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 34.51,
                "protein_g": 2.46,
                "carbs_g": 8.08,
                "fat_g": 0.28
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 622.13,
          "protein_g": 77.83,
          "carbs_g": 9.35,
          "fat_g": 31.87
        },
        "delta_vs_target": {
          "kcal": -6.87,
          "protein_g": 0.78,
          "carbs_g": 0.18,
          "fat_g": 1.18
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L065",
        "name": "Bife apimentado + Vagem com limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 310.8,
                  "macros": {
                    "kcal": 426.22,
                    "protein_g": 72.72,
                    "carbs_g": 0.0,
                    "fat_g": 15.15
                  },
                  "nutrition_basis_grams": 202.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 202.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 552.22,
                "protein_g": 72.72,
                "carbs_g": 0.0,
                "fat_g": 29.15
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 176.4,
                  "macros": {
                    "kcal": 36.11,
                    "protein_g": 2.51,
                    "carbs_g": 7.91,
                    "fat_g": 0.24
                  },
                  "nutrition_basis_grams": 157.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 157.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 62.99,
                "protein_g": 4.42,
                "carbs_g": 8.06,
                "fat_g": 2.34
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 622.06,
          "protein_g": 77.99,
          "carbs_g": 9.33,
          "fat_g": 31.56
        },
        "delta_vs_target": {
          "kcal": -6.94,
          "protein_g": 0.94,
          "carbs_g": 0.16,
          "fat_g": 0.87
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L066",
        "name": "Bife apimentado + Berinjela assada com tomate e manjericão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 321.5,
                  "macros": {
                    "kcal": 440.99,
                    "protein_g": 75.24,
                    "carbs_g": 0.0,
                    "fat_g": 15.67
                  },
                  "nutrition_basis_grams": 209.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 209.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 584.99,
                "protein_g": 75.24,
                "carbs_g": 0.0,
                "fat_g": 31.67
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.4,
                    "protein_g": 0.31,
                    "carbs_g": 1.15,
                    "fat_g": 0.05
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 117.0,
                  "macros": {
                    "kcal": 28.6,
                    "protein_g": 0.87,
                    "carbs_g": 6.82,
                    "fat_g": 0.26
                  },
                  "nutrition_basis_grams": 110.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 110.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 34.0,
                "protein_g": 1.18,
                "carbs_g": 7.97,
                "fat_g": 0.31
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 625.84,
          "protein_g": 77.27,
          "carbs_g": 9.24,
          "fat_g": 32.05
        },
        "delta_vs_target": {
          "kcal": -3.16,
          "protein_g": 0.22,
          "carbs_g": 0.07,
          "fat_g": 1.36
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L067",
        "name": "Hambúrguer bovino caseiro sem pão + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 4.92,
                    "protein_g": 0.21,
                    "carbs_g": 1.11,
                    "fat_g": 0.02
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 357.3,
                  "macros": {
                    "kcal": 568.16,
                    "protein_g": 71.56,
                    "carbs_g": 0.0,
                    "fat_g": 29.21
                  },
                  "nutrition_basis_grams": 268.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 268.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 1.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 1.0
                  },
                  "nutrition_basis_grams": 1.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 582.08,
                "protein_g": 71.77,
                "carbs_g": 1.11,
                "fat_g": 30.23
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 153.0,
                  "macros": {
                    "kcal": 41.31,
                    "protein_g": 4.15,
                    "carbs_g": 6.79,
                    "fat_g": 0.83
                  },
                  "nutrition_basis_grams": 153.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 153.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 41.31,
                "protein_g": 4.15,
                "carbs_g": 6.79,
                "fat_g": 0.83
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 630.24,
          "protein_g": 76.77,
          "carbs_g": 9.17,
          "fat_g": 31.13
        },
        "delta_vs_target": {
          "kcal": 1.24,
          "protein_g": -0.28,
          "carbs_g": 0.0,
          "fat_g": 0.44
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L068",
        "name": "Hambúrguer bovino caseiro sem pão + Couve-flor assada com especiarias + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 4.92,
                    "protein_g": 0.21,
                    "carbs_g": 1.11,
                    "fat_g": 0.02
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 366.7,
                  "macros": {
                    "kcal": 583.0,
                    "protein_g": 73.42,
                    "carbs_g": 0.0,
                    "fat_g": 29.98
                  },
                  "nutrition_basis_grams": 275.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 275.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 587.92,
                "protein_g": 73.63,
                "carbs_g": 1.11,
                "fat_g": 30.0
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 204.1,
                  "macros": {
                    "kcal": 34.0,
                    "protein_g": 2.56,
                    "carbs_g": 6.82,
                    "fat_g": 0.4
                  },
                  "nutrition_basis_grams": 200.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 200.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 34.0,
                "protein_g": 2.56,
                "carbs_g": 6.82,
                "fat_g": 0.4
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 628.77,
          "protein_g": 77.04,
          "carbs_g": 9.2,
          "fat_g": 30.47
        },
        "delta_vs_target": {
          "kcal": -0.23,
          "protein_g": -0.01,
          "carbs_g": 0.03,
          "fat_g": -0.22
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L069",
        "name": "Hambúrguer bovino caseiro sem pão + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 4.92,
                    "protein_g": 0.21,
                    "carbs_g": 1.11,
                    "fat_g": 0.02
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 356.0,
                  "macros": {
                    "kcal": 566.04,
                    "protein_g": 71.29,
                    "carbs_g": 0.0,
                    "fat_g": 29.1
                  },
                  "nutrition_basis_grams": 267.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 267.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 570.96,
                "protein_g": 71.5,
                "carbs_g": 1.11,
                "fat_g": 29.12
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 111.2,
                  "macros": {
                    "kcal": 22.77,
                    "protein_g": 1.58,
                    "carbs_g": 4.99,
                    "fat_g": 0.15
                  },
                  "nutrition_basis_grams": 99.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 99.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 57.63,
                "protein_g": 2.7,
                "carbs_g": 6.76,
                "fat_g": 2.99
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 635.44,
          "protein_g": 75.05,
          "carbs_g": 9.14,
          "fat_g": 32.18
        },
        "delta_vs_target": {
          "kcal": 6.44,
          "protein_g": -2.0,
          "carbs_g": -0.03,
          "fat_g": 1.49
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L070",
        "name": "Hambúrguer bovino caseiro sem pão + Cogumelos ao alho e ervas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 4.92,
                    "protein_g": 0.21,
                    "carbs_g": 1.11,
                    "fat_g": 0.02
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 357.3,
                  "macros": {
                    "kcal": 568.16,
                    "protein_g": 71.56,
                    "carbs_g": 0.0,
                    "fat_g": 29.21
                  },
                  "nutrition_basis_grams": 268.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 268.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 573.08,
                "protein_g": 71.77,
                "carbs_g": 1.11,
                "fat_g": 29.23
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 327.3,
                  "macros": {
                    "kcal": 54.72,
                    "protein_g": 3.79,
                    "carbs_g": 6.49,
                    "fat_g": 0.62
                  },
                  "nutrition_basis_grams": 144.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 144.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 54.72,
                "protein_g": 3.79,
                "carbs_g": 6.49,
                "fat_g": 0.62
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 634.65,
          "protein_g": 76.41,
          "carbs_g": 8.87,
          "fat_g": 29.92
        },
        "delta_vs_target": {
          "kcal": 5.65,
          "protein_g": -0.64,
          "carbs_g": -0.3,
          "fat_g": -0.77
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L071",
        "name": "Hambúrguer bovino caseiro sem pão + Arroz de couve-flor com cominho e coentro + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 4.92,
                    "protein_g": 0.21,
                    "carbs_g": 1.11,
                    "fat_g": 0.02
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 366.7,
                  "macros": {
                    "kcal": 583.0,
                    "protein_g": 73.42,
                    "carbs_g": 0.0,
                    "fat_g": 29.98
                  },
                  "nutrition_basis_grams": 275.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 275.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 587.92,
                "protein_g": 73.63,
                "carbs_g": 1.11,
                "fat_g": 30.0
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 204.1,
                  "macros": {
                    "kcal": 34.0,
                    "protein_g": 2.56,
                    "carbs_g": 6.82,
                    "fat_g": 0.4
                  },
                  "nutrition_basis_grams": 200.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 200.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 34.0,
                "protein_g": 2.56,
                "carbs_g": 6.82,
                "fat_g": 0.4
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 628.77,
          "protein_g": 77.04,
          "carbs_g": 9.2,
          "fat_g": 30.47
        },
        "delta_vs_target": {
          "kcal": -0.23,
          "protein_g": -0.01,
          "carbs_g": 0.03,
          "fat_g": -0.22
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L072",
        "name": "Hambúrguer bovino caseiro sem pão + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 4.92,
                    "protein_g": 0.21,
                    "carbs_g": 1.11,
                    "fat_g": 0.02
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 369.3,
                  "macros": {
                    "kcal": 587.24,
                    "protein_g": 73.96,
                    "carbs_g": 0.0,
                    "fat_g": 30.19
                  },
                  "nutrition_basis_grams": 277.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 277.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 592.16,
                "protein_g": 74.17,
                "carbs_g": 1.11,
                "fat_g": 30.21
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 610.7,
                  "macros": {
                    "kcal": 29.07,
                    "protein_g": 2.07,
                    "carbs_g": 6.81,
                    "fat_g": 0.24
                  },
                  "nutrition_basis_grams": 171.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 171.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 29.07,
                "protein_g": 2.07,
                "carbs_g": 6.81,
                "fat_g": 0.24
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 628.08,
          "protein_g": 77.09,
          "carbs_g": 9.19,
          "fat_g": 30.52
        },
        "delta_vs_target": {
          "kcal": -0.92,
          "protein_g": 0.04,
          "carbs_g": 0.02,
          "fat_g": -0.17
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L073",
        "name": "Hambúrguer bovino caseiro sem pão + Berinjela assada com tomate e manjericão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 4.92,
                    "protein_g": 0.21,
                    "carbs_g": 1.11,
                    "fat_g": 0.02
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 372.0,
                  "macros": {
                    "kcal": 591.48,
                    "protein_g": 74.49,
                    "carbs_g": 0.0,
                    "fat_g": 30.41
                  },
                  "nutrition_basis_grams": 279.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 279.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 596.4,
                "protein_g": 74.7,
                "carbs_g": 1.11,
                "fat_g": 30.43
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.4,
                    "protein_g": 0.31,
                    "carbs_g": 1.15,
                    "fat_g": 0.05
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 95.7,
                  "macros": {
                    "kcal": 23.4,
                    "protein_g": 0.71,
                    "carbs_g": 5.58,
                    "fat_g": 0.22
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 90.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 28.8,
                "protein_g": 1.02,
                "carbs_g": 6.73,
                "fat_g": 0.27
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 632.05,
          "protein_g": 76.57,
          "carbs_g": 9.11,
          "fat_g": 30.77
        },
        "delta_vs_target": {
          "kcal": 3.05,
          "protein_g": -0.48,
          "carbs_g": -0.06,
          "fat_g": 0.08
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L074",
        "name": "Kofta bovina grelhada + Couve-flor assada com especiarias + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 366.7,
                  "macros": {
                    "kcal": 583.0,
                    "protein_g": 73.42,
                    "carbs_g": 0.0,
                    "fat_g": 29.98
                  },
                  "nutrition_basis_grams": 275.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 275.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 583.0,
                "protein_g": 73.42,
                "carbs_g": 0.0,
                "fat_g": 29.98
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 235.7,
                  "macros": {
                    "kcal": 39.27,
                    "protein_g": 2.96,
                    "carbs_g": 7.88,
                    "fat_g": 0.46
                  },
                  "nutrition_basis_grams": 231.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 231.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 39.27,
                "protein_g": 2.96,
                "carbs_g": 7.88,
                "fat_g": 0.46
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 629.12,
          "protein_g": 77.23,
          "carbs_g": 9.15,
          "fat_g": 30.51
        },
        "delta_vs_target": {
          "kcal": 0.12,
          "protein_g": 0.18,
          "carbs_g": -0.02,
          "fat_g": -0.18
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L075",
        "name": "Kofta bovina grelhada + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 356.0,
                  "macros": {
                    "kcal": 566.04,
                    "protein_g": 71.29,
                    "carbs_g": 0.0,
                    "fat_g": 29.1
                  },
                  "nutrition_basis_grams": 267.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 267.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 566.04,
                "protein_g": 71.29,
                "carbs_g": 0.0,
                "fat_g": 29.1
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 136.0,
                  "macros": {
                    "kcal": 27.83,
                    "protein_g": 1.94,
                    "carbs_g": 6.1,
                    "fat_g": 0.18
                  },
                  "nutrition_basis_grams": 121.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 121.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 62.69,
                "protein_g": 3.06,
                "carbs_g": 7.87,
                "fat_g": 3.02
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 635.58,
          "protein_g": 75.2,
          "carbs_g": 9.14,
          "fat_g": 32.19
        },
        "delta_vs_target": {
          "kcal": 6.58,
          "protein_g": -1.85,
          "carbs_g": -0.03,
          "fat_g": 1.5
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L076",
        "name": "Kofta bovina grelhada + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 354.7,
                  "macros": {
                    "kcal": 563.92,
                    "protein_g": 71.02,
                    "carbs_g": 0.0,
                    "fat_g": 28.99
                  },
                  "nutrition_basis_grams": 266.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 266.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 563.92,
                "protein_g": 71.02,
                "carbs_g": 0.0,
                "fat_g": 28.99
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 696.4,
                  "macros": {
                    "kcal": 33.15,
                    "protein_g": 2.36,
                    "carbs_g": 7.76,
                    "fat_g": 0.27
                  },
                  "nutrition_basis_grams": 195.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 195.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 60.03,
                "protein_g": 4.27,
                "carbs_g": 7.91,
                "fat_g": 2.37
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 630.8,
          "protein_g": 76.14,
          "carbs_g": 9.18,
          "fat_g": 31.43
        },
        "delta_vs_target": {
          "kcal": 1.8,
          "protein_g": -0.91,
          "carbs_g": 0.01,
          "fat_g": 0.74
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L077",
        "name": "Kofta bovina grelhada + Arroz de couve-flor com cominho e coentro + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 366.7,
                  "macros": {
                    "kcal": 583.0,
                    "protein_g": 73.42,
                    "carbs_g": 0.0,
                    "fat_g": 29.98
                  },
                  "nutrition_basis_grams": 275.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 275.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 583.0,
                "protein_g": 73.42,
                "carbs_g": 0.0,
                "fat_g": 29.98
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 235.7,
                  "macros": {
                    "kcal": 39.27,
                    "protein_g": 2.96,
                    "carbs_g": 7.88,
                    "fat_g": 0.46
                  },
                  "nutrition_basis_grams": 231.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 231.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 39.27,
                "protein_g": 2.96,
                "carbs_g": 7.88,
                "fat_g": 0.46
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 629.12,
          "protein_g": 77.23,
          "carbs_g": 9.15,
          "fat_g": 30.51
        },
        "delta_vs_target": {
          "kcal": 0.12,
          "protein_g": 0.18,
          "carbs_g": -0.02,
          "fat_g": -0.18
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L078",
        "name": "Kofta bovina grelhada + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 369.3,
                  "macros": {
                    "kcal": 587.24,
                    "protein_g": 73.96,
                    "carbs_g": 0.0,
                    "fat_g": 30.19
                  },
                  "nutrition_basis_grams": 277.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 277.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 587.24,
                "protein_g": 73.96,
                "carbs_g": 0.0,
                "fat_g": 30.19
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 710.7,
                  "macros": {
                    "kcal": 33.83,
                    "protein_g": 2.41,
                    "carbs_g": 7.92,
                    "fat_g": 0.28
                  },
                  "nutrition_basis_grams": 199.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 199.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 33.83,
                "protein_g": 2.41,
                "carbs_g": 7.92,
                "fat_g": 0.28
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 627.92,
          "protein_g": 77.22,
          "carbs_g": 9.19,
          "fat_g": 30.54
        },
        "delta_vs_target": {
          "kcal": -1.08,
          "protein_g": 0.17,
          "carbs_g": 0.02,
          "fat_g": -0.15
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L079",
        "name": "Kofta bovina grelhada + Vagem com limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 354.7,
                  "macros": {
                    "kcal": 563.92,
                    "protein_g": 71.02,
                    "carbs_g": 0.0,
                    "fat_g": 28.99
                  },
                  "nutrition_basis_grams": 266.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 266.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 563.92,
                "protein_g": 71.02,
                "carbs_g": 0.0,
                "fat_g": 28.99
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 170.8,
                  "macros": {
                    "kcal": 34.96,
                    "protein_g": 2.43,
                    "carbs_g": 7.66,
                    "fat_g": 0.23
                  },
                  "nutrition_basis_grams": 152.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 152.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 61.84,
                "protein_g": 4.34,
                "carbs_g": 7.81,
                "fat_g": 2.33
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 632.61,
          "protein_g": 76.21,
          "carbs_g": 9.08,
          "fat_g": 31.39
        },
        "delta_vs_target": {
          "kcal": 3.61,
          "protein_g": -0.84,
          "carbs_g": -0.09,
          "fat_g": 0.7
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L080",
        "name": "Kofta bovina grelhada + Berinjela assada com tomate e manjericão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 372.0,
                  "macros": {
                    "kcal": 591.48,
                    "protein_g": 74.49,
                    "carbs_g": 0.0,
                    "fat_g": 30.41
                  },
                  "nutrition_basis_grams": 279.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 279.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 591.48,
                "protein_g": 74.49,
                "carbs_g": 0.0,
                "fat_g": 30.41
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.4,
                    "protein_g": 0.31,
                    "carbs_g": 1.15,
                    "fat_g": 0.05
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 114.9,
                  "macros": {
                    "kcal": 28.08,
                    "protein_g": 0.85,
                    "carbs_g": 6.7,
                    "fat_g": 0.26
                  },
                  "nutrition_basis_grams": 108.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 108.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 33.48,
                "protein_g": 1.16,
                "carbs_g": 7.85,
                "fat_g": 0.31
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 631.81,
          "protein_g": 76.5,
          "carbs_g": 9.12,
          "fat_g": 30.79
        },
        "delta_vs_target": {
          "kcal": 2.81,
          "protein_g": -0.55,
          "carbs_g": -0.05,
          "fat_g": 0.1
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L081",
        "name": "Kofte marroquino ao tomate + Couve-flor assada com especiarias + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 6.3,
                    "protein_g": 0.36,
                    "carbs_g": 1.34,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 366.7,
                  "macros": {
                    "kcal": 583.0,
                    "protein_g": 73.42,
                    "carbs_g": 0.0,
                    "fat_g": 29.98
                  },
                  "nutrition_basis_grams": 275.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 275.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 589.3,
                "protein_g": 73.78,
                "carbs_g": 1.34,
                "fat_g": 30.04
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 195.9,
                  "macros": {
                    "kcal": 32.64,
                    "protein_g": 2.46,
                    "carbs_g": 6.55,
                    "fat_g": 0.38
                  },
                  "nutrition_basis_grams": 192.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 192.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 32.64,
                "protein_g": 2.46,
                "carbs_g": 6.55,
                "fat_g": 0.38
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 628.79,
          "protein_g": 77.09,
          "carbs_g": 9.16,
          "fat_g": 30.49
        },
        "delta_vs_target": {
          "kcal": -0.21,
          "protein_g": 0.04,
          "carbs_g": -0.01,
          "fat_g": -0.2
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L082",
        "name": "Kofte marroquino ao tomate + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 6.3,
                    "protein_g": 0.36,
                    "carbs_g": 1.34,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 354.7,
                  "macros": {
                    "kcal": 563.92,
                    "protein_g": 71.02,
                    "carbs_g": 0.0,
                    "fat_g": 28.99
                  },
                  "nutrition_basis_grams": 266.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 266.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 570.22,
                "protein_g": 71.38,
                "carbs_g": 1.34,
                "fat_g": 29.05
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 575.0,
                  "macros": {
                    "kcal": 27.37,
                    "protein_g": 1.95,
                    "carbs_g": 6.41,
                    "fat_g": 0.23
                  },
                  "nutrition_basis_grams": 161.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 161.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 54.25,
                "protein_g": 3.86,
                "carbs_g": 6.56,
                "fat_g": 2.33
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 631.32,
          "protein_g": 76.09,
          "carbs_g": 9.17,
          "fat_g": 31.45
        },
        "delta_vs_target": {
          "kcal": 2.32,
          "protein_g": -0.96,
          "carbs_g": 0.0,
          "fat_g": 0.76
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L083",
        "name": "Kofte marroquino ao tomate + Arroz de couve-flor com cominho e coentro + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 6.3,
                    "protein_g": 0.36,
                    "carbs_g": 1.34,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 366.7,
                  "macros": {
                    "kcal": 583.0,
                    "protein_g": 73.42,
                    "carbs_g": 0.0,
                    "fat_g": 29.98
                  },
                  "nutrition_basis_grams": 275.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 275.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 589.3,
                "protein_g": 73.78,
                "carbs_g": 1.34,
                "fat_g": 30.04
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 195.9,
                  "macros": {
                    "kcal": 32.64,
                    "protein_g": 2.46,
                    "carbs_g": 6.55,
                    "fat_g": 0.38
                  },
                  "nutrition_basis_grams": 192.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 192.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 32.64,
                "protein_g": 2.46,
                "carbs_g": 6.55,
                "fat_g": 0.38
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 628.79,
          "protein_g": 77.09,
          "carbs_g": 9.16,
          "fat_g": 30.49
        },
        "delta_vs_target": {
          "kcal": -0.21,
          "protein_g": 0.04,
          "carbs_g": -0.01,
          "fat_g": -0.2
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L084",
        "name": "Kofte marroquino ao tomate + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 6.3,
                    "protein_g": 0.36,
                    "carbs_g": 1.34,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 369.3,
                  "macros": {
                    "kcal": 587.24,
                    "protein_g": 73.96,
                    "carbs_g": 0.0,
                    "fat_g": 30.19
                  },
                  "nutrition_basis_grams": 277.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 277.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 593.54,
                "protein_g": 74.32,
                "carbs_g": 1.34,
                "fat_g": 30.25
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 589.3,
                  "macros": {
                    "kcal": 28.05,
                    "protein_g": 2.0,
                    "carbs_g": 6.57,
                    "fat_g": 0.23
                  },
                  "nutrition_basis_grams": 165.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 165.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 28.05,
                "protein_g": 2.0,
                "carbs_g": 6.57,
                "fat_g": 0.23
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 628.44,
          "protein_g": 77.17,
          "carbs_g": 9.18,
          "fat_g": 30.55
        },
        "delta_vs_target": {
          "kcal": -0.56,
          "protein_g": 0.12,
          "carbs_g": 0.01,
          "fat_g": -0.14
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L085",
        "name": "Kofte marroquino ao tomate + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 6.3,
                    "protein_g": 0.36,
                    "carbs_g": 1.34,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 356.0,
                  "macros": {
                    "kcal": 566.04,
                    "protein_g": 71.29,
                    "carbs_g": 0.0,
                    "fat_g": 29.1
                  },
                  "nutrition_basis_grams": 267.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 267.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 572.34,
                "protein_g": 71.65,
                "carbs_g": 1.34,
                "fat_g": 29.16
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 105.6,
                  "macros": {
                    "kcal": 21.62,
                    "protein_g": 1.5,
                    "carbs_g": 4.74,
                    "fat_g": 0.14
                  },
                  "nutrition_basis_grams": 94.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 94.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 56.48,
                "protein_g": 2.62,
                "carbs_g": 6.51,
                "fat_g": 2.98
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 635.67,
          "protein_g": 75.12,
          "carbs_g": 9.12,
          "fat_g": 32.21
        },
        "delta_vs_target": {
          "kcal": 6.67,
          "protein_g": -1.93,
          "carbs_g": -0.05,
          "fat_g": 1.52
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L086",
        "name": "Kofte marroquino ao tomate + Vagem com limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 6.3,
                    "protein_g": 0.36,
                    "carbs_g": 1.34,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 354.7,
                  "macros": {
                    "kcal": 563.92,
                    "protein_g": 71.02,
                    "carbs_g": 0.0,
                    "fat_g": 28.99
                  },
                  "nutrition_basis_grams": 266.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 266.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 570.22,
                "protein_g": 71.38,
                "carbs_g": 1.34,
                "fat_g": 29.05
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 141.6,
                  "macros": {
                    "kcal": 28.98,
                    "protein_g": 2.02,
                    "carbs_g": 6.35,
                    "fat_g": 0.19
                  },
                  "nutrition_basis_grams": 126.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 126.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 55.86,
                "protein_g": 3.93,
                "carbs_g": 6.5,
                "fat_g": 2.29
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 632.93,
          "protein_g": 76.16,
          "carbs_g": 9.11,
          "fat_g": 31.41
        },
        "delta_vs_target": {
          "kcal": 3.93,
          "protein_g": -0.89,
          "carbs_g": -0.06,
          "fat_g": 0.72
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L087",
        "name": "Kofte marroquino ao tomate + Purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 6.3,
                    "protein_g": 0.36,
                    "carbs_g": 1.34,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 366.7,
                  "macros": {
                    "kcal": 583.0,
                    "protein_g": 73.42,
                    "carbs_g": 0.0,
                    "fat_g": 29.98
                  },
                  "nutrition_basis_grams": 275.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 275.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 589.3,
                "protein_g": 73.78,
                "carbs_g": 1.34,
                "fat_g": 30.04
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 195.9,
                  "macros": {
                    "kcal": 32.64,
                    "protein_g": 2.46,
                    "carbs_g": 6.55,
                    "fat_g": 0.38
                  },
                  "nutrition_basis_grams": 192.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 192.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 32.64,
                "protein_g": 2.46,
                "carbs_g": 6.55,
                "fat_g": 0.38
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 628.79,
          "protein_g": 77.09,
          "carbs_g": 9.16,
          "fat_g": 30.49
        },
        "delta_vs_target": {
          "kcal": -0.21,
          "protein_g": 0.04,
          "carbs_g": -0.01,
          "fat_g": -0.2
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L088",
        "name": "Frango grelhado com limão e alho + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 313.7,
                  "macros": {
                    "kcal": 352.66,
                    "protein_g": 71.68,
                    "carbs_g": 0.0,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 229.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 229.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 568.66,
                "protein_g": 71.68,
                "carbs_g": 0.0,
                "fat_g": 31.24
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 180.0,
                  "macros": {
                    "kcal": 48.6,
                    "protein_g": 4.88,
                    "carbs_g": 7.99,
                    "fat_g": 0.97
                  },
                  "nutrition_basis_grams": 180.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 180.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 48.6,
                "protein_g": 4.88,
                "carbs_g": 7.99,
                "fat_g": 0.97
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.11,
          "protein_g": 77.41,
          "carbs_g": 9.26,
          "fat_g": 32.28
        },
        "delta_vs_target": {
          "kcal": -4.89,
          "protein_g": 0.36,
          "carbs_g": 0.09,
          "fat_g": 1.59
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L089",
        "name": "Frango grelhado com limão e alho + Brócolis com ervas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 313.7,
                  "macros": {
                    "kcal": 352.66,
                    "protein_g": 71.68,
                    "carbs_g": 0.0,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 229.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 229.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 568.66,
                "protein_g": 71.68,
                "carbs_g": 0.0,
                "fat_g": 31.24
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 180.0,
                  "macros": {
                    "kcal": 48.6,
                    "protein_g": 4.88,
                    "carbs_g": 7.99,
                    "fat_g": 0.97
                  },
                  "nutrition_basis_grams": 180.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 180.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 48.6,
                "protein_g": 4.88,
                "carbs_g": 7.99,
                "fat_g": 0.97
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.11,
          "protein_g": 77.41,
          "carbs_g": 9.26,
          "fat_g": 32.28
        },
        "delta_vs_target": {
          "kcal": -4.89,
          "protein_g": 0.36,
          "carbs_g": 0.09,
          "fat_g": 1.59
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L090",
        "name": "Frango grelhado com limão e alho + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 323.3,
                  "macros": {
                    "kcal": 363.44,
                    "protein_g": 73.87,
                    "carbs_g": 0.0,
                    "fat_g": 7.46
                  },
                  "nutrition_basis_grams": 236.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 236.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 21.0,
                  "macros": {
                    "kcal": 189.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 21.0
                  },
                  "nutrition_basis_grams": 21.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 552.44,
                "protein_g": 73.87,
                "carbs_g": 0.0,
                "fat_g": 28.46
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 140.4,
                  "macros": {
                    "kcal": 28.75,
                    "protein_g": 2.0,
                    "carbs_g": 6.3,
                    "fat_g": 0.19
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 63.61,
                "protein_g": 3.12,
                "carbs_g": 8.07,
                "fat_g": 3.03
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 622.9,
          "protein_g": 77.84,
          "carbs_g": 9.34,
          "fat_g": 31.56
        },
        "delta_vs_target": {
          "kcal": -6.1,
          "protein_g": 0.79,
          "carbs_g": 0.17,
          "fat_g": 0.87
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L091",
        "name": "Frango grelhado com limão e alho + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 317.8,
                  "macros": {
                    "kcal": 357.28,
                    "protein_g": 72.62,
                    "carbs_g": 0.0,
                    "fat_g": 7.33
                  },
                  "nutrition_basis_grams": 232.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 232.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 555.28,
                "protein_g": 72.62,
                "carbs_g": 0.0,
                "fat_g": 29.33
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 707.1,
                  "macros": {
                    "kcal": 33.66,
                    "protein_g": 2.4,
                    "carbs_g": 7.88,
                    "fat_g": 0.28
                  },
                  "nutrition_basis_grams": 198.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 198.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 60.54,
                "protein_g": 4.31,
                "carbs_g": 8.03,
                "fat_g": 2.38
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 622.67,
          "protein_g": 77.78,
          "carbs_g": 9.3,
          "fat_g": 31.78
        },
        "delta_vs_target": {
          "kcal": -6.33,
          "protein_g": 0.73,
          "carbs_g": 0.13,
          "fat_g": 1.09
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L092",
        "name": "Frango grelhado com limão e alho + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 324.7,
                  "macros": {
                    "kcal": 364.98,
                    "protein_g": 74.18,
                    "carbs_g": 0.0,
                    "fat_g": 7.49
                  },
                  "nutrition_basis_grams": 237.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 237.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 580.98,
                "protein_g": 74.18,
                "carbs_g": 0.0,
                "fat_g": 31.49
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 725.0,
                  "macros": {
                    "kcal": 34.51,
                    "protein_g": 2.46,
                    "carbs_g": 8.08,
                    "fat_g": 0.28
                  },
                  "nutrition_basis_grams": 203.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 203.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 34.51,
                "protein_g": 2.46,
                "carbs_g": 8.08,
                "fat_g": 0.28
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 622.34,
          "protein_g": 77.49,
          "carbs_g": 9.35,
          "fat_g": 31.84
        },
        "delta_vs_target": {
          "kcal": -6.66,
          "protein_g": 0.44,
          "carbs_g": 0.18,
          "fat_g": 1.15
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L093",
        "name": "Frango grelhado com limão e alho + Vagem com limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 316.4,
                  "macros": {
                    "kcal": 355.74,
                    "protein_g": 72.3,
                    "carbs_g": 0.0,
                    "fat_g": 7.3
                  },
                  "nutrition_basis_grams": 231.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 231.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 553.74,
                "protein_g": 72.3,
                "carbs_g": 0.0,
                "fat_g": 29.3
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 176.4,
                  "macros": {
                    "kcal": 36.11,
                    "protein_g": 2.51,
                    "carbs_g": 7.91,
                    "fat_g": 0.24
                  },
                  "nutrition_basis_grams": 157.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 157.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 62.99,
                "protein_g": 4.42,
                "carbs_g": 8.06,
                "fat_g": 2.34
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 623.58,
          "protein_g": 77.57,
          "carbs_g": 9.33,
          "fat_g": 31.71
        },
        "delta_vs_target": {
          "kcal": -5.42,
          "protein_g": 0.52,
          "carbs_g": 0.16,
          "fat_g": 1.02
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L094",
        "name": "Frango grelhado com limão e alho + Berinjela assada com tomate e manjericão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 328.8,
                  "macros": {
                    "kcal": 369.6,
                    "protein_g": 75.12,
                    "carbs_g": 0.0,
                    "fat_g": 7.58
                  },
                  "nutrition_basis_grams": 240.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 240.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 585.6,
                "protein_g": 75.12,
                "carbs_g": 0.0,
                "fat_g": 31.58
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.4,
                    "protein_g": 0.31,
                    "carbs_g": 1.15,
                    "fat_g": 0.05
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 117.0,
                  "macros": {
                    "kcal": 28.6,
                    "protein_g": 0.87,
                    "carbs_g": 6.82,
                    "fat_g": 0.26
                  },
                  "nutrition_basis_grams": 110.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 110.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 34.0,
                "protein_g": 1.18,
                "carbs_g": 7.97,
                "fat_g": 0.31
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 626.45,
          "protein_g": 77.15,
          "carbs_g": 9.24,
          "fat_g": 31.96
        },
        "delta_vs_target": {
          "kcal": -2.55,
          "protein_g": 0.1,
          "carbs_g": 0.07,
          "fat_g": 1.27
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L095",
        "name": "Frango jerk + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 313.7,
                  "macros": {
                    "kcal": 352.66,
                    "protein_g": 71.68,
                    "carbs_g": 0.0,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 229.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 229.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 568.66,
                "protein_g": 71.68,
                "carbs_g": 0.0,
                "fat_g": 31.24
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 180.0,
                  "macros": {
                    "kcal": 48.6,
                    "protein_g": 4.88,
                    "carbs_g": 7.99,
                    "fat_g": 0.97
                  },
                  "nutrition_basis_grams": 180.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 180.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 48.6,
                "protein_g": 4.88,
                "carbs_g": 7.99,
                "fat_g": 0.97
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.11,
          "protein_g": 77.41,
          "carbs_g": 9.26,
          "fat_g": 32.28
        },
        "delta_vs_target": {
          "kcal": -4.89,
          "protein_g": 0.36,
          "carbs_g": 0.09,
          "fat_g": 1.59
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L096",
        "name": "Frango jerk + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 323.3,
                  "macros": {
                    "kcal": 363.44,
                    "protein_g": 73.87,
                    "carbs_g": 0.0,
                    "fat_g": 7.46
                  },
                  "nutrition_basis_grams": 236.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 236.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 21.0,
                  "macros": {
                    "kcal": 189.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 21.0
                  },
                  "nutrition_basis_grams": 21.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 552.44,
                "protein_g": 73.87,
                "carbs_g": 0.0,
                "fat_g": 28.46
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 140.4,
                  "macros": {
                    "kcal": 28.75,
                    "protein_g": 2.0,
                    "carbs_g": 6.3,
                    "fat_g": 0.19
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 63.61,
                "protein_g": 3.12,
                "carbs_g": 8.07,
                "fat_g": 3.03
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 622.9,
          "protein_g": 77.84,
          "carbs_g": 9.34,
          "fat_g": 31.56
        },
        "delta_vs_target": {
          "kcal": -6.1,
          "protein_g": 0.79,
          "carbs_g": 0.17,
          "fat_g": 0.87
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L097",
        "name": "Frango jerk + Vagem com gergelim e gengibre + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 324.7,
                  "macros": {
                    "kcal": 364.98,
                    "protein_g": 74.18,
                    "carbs_g": 0.0,
                    "fat_g": 7.49
                  },
                  "nutrition_basis_grams": 237.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 237.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 580.98,
                "protein_g": 74.18,
                "carbs_g": 0.0,
                "fat_g": 31.49
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 178.7,
                  "macros": {
                    "kcal": 36.57,
                    "protein_g": 2.54,
                    "carbs_g": 8.01,
                    "fat_g": 0.24
                  },
                  "nutrition_basis_grams": 159.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 159.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 36.57,
                "protein_g": 2.54,
                "carbs_g": 8.01,
                "fat_g": 0.24
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.4,
          "protein_g": 77.57,
          "carbs_g": 9.28,
          "fat_g": 31.8
        },
        "delta_vs_target": {
          "kcal": -4.6,
          "protein_g": 0.52,
          "carbs_g": 0.11,
          "fat_g": 1.11
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L098",
        "name": "Frango jerk + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 317.8,
                  "macros": {
                    "kcal": 357.28,
                    "protein_g": 72.62,
                    "carbs_g": 0.0,
                    "fat_g": 7.33
                  },
                  "nutrition_basis_grams": 232.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 232.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 555.28,
                "protein_g": 72.62,
                "carbs_g": 0.0,
                "fat_g": 29.33
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 707.1,
                  "macros": {
                    "kcal": 33.66,
                    "protein_g": 2.4,
                    "carbs_g": 7.88,
                    "fat_g": 0.28
                  },
                  "nutrition_basis_grams": 198.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 198.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 60.54,
                "protein_g": 4.31,
                "carbs_g": 8.03,
                "fat_g": 2.38
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 622.67,
          "protein_g": 77.78,
          "carbs_g": 9.3,
          "fat_g": 31.78
        },
        "delta_vs_target": {
          "kcal": -6.33,
          "protein_g": 0.73,
          "carbs_g": 0.13,
          "fat_g": 1.09
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L099",
        "name": "Frango jerk + Arroz de couve-flor com cominho e coentro + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 321.9,
                  "macros": {
                    "kcal": 361.9,
                    "protein_g": 73.56,
                    "carbs_g": 0.0,
                    "fat_g": 7.43
                  },
                  "nutrition_basis_grams": 235.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 235.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 577.9,
                "protein_g": 73.56,
                "carbs_g": 0.0,
                "fat_g": 31.43
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 239.8,
                  "macros": {
                    "kcal": 39.95,
                    "protein_g": 3.01,
                    "carbs_g": 8.01,
                    "fat_g": 0.47
                  },
                  "nutrition_basis_grams": 235.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 235.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 39.95,
                "protein_g": 3.01,
                "carbs_g": 8.01,
                "fat_g": 0.47
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.7,
          "protein_g": 77.42,
          "carbs_g": 9.28,
          "fat_g": 31.97
        },
        "delta_vs_target": {
          "kcal": -4.3,
          "protein_g": 0.37,
          "carbs_g": 0.11,
          "fat_g": 1.28
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L100",
        "name": "Frango jerk + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 324.7,
                  "macros": {
                    "kcal": 364.98,
                    "protein_g": 74.18,
                    "carbs_g": 0.0,
                    "fat_g": 7.49
                  },
                  "nutrition_basis_grams": 237.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 237.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 580.98,
                "protein_g": 74.18,
                "carbs_g": 0.0,
                "fat_g": 31.49
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 725.0,
                  "macros": {
                    "kcal": 34.51,
                    "protein_g": 2.46,
                    "carbs_g": 8.08,
                    "fat_g": 0.28
                  },
                  "nutrition_basis_grams": 203.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 203.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 34.51,
                "protein_g": 2.46,
                "carbs_g": 8.08,
                "fat_g": 0.28
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 622.34,
          "protein_g": 77.49,
          "carbs_g": 9.35,
          "fat_g": 31.84
        },
        "delta_vs_target": {
          "kcal": -6.66,
          "protein_g": 0.44,
          "carbs_g": 0.18,
          "fat_g": 1.15
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L101",
        "name": "Frango jerk + Berinjela assada com tomate e manjericão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 328.8,
                  "macros": {
                    "kcal": 369.6,
                    "protein_g": 75.12,
                    "carbs_g": 0.0,
                    "fat_g": 7.58
                  },
                  "nutrition_basis_grams": 240.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 240.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 585.6,
                "protein_g": 75.12,
                "carbs_g": 0.0,
                "fat_g": 31.58
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.4,
                    "protein_g": 0.31,
                    "carbs_g": 1.15,
                    "fat_g": 0.05
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 117.0,
                  "macros": {
                    "kcal": 28.6,
                    "protein_g": 0.87,
                    "carbs_g": 6.82,
                    "fat_g": 0.26
                  },
                  "nutrition_basis_grams": 110.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 110.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 34.0,
                "protein_g": 1.18,
                "carbs_g": 7.97,
                "fat_g": 0.31
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 626.45,
          "protein_g": 77.15,
          "carbs_g": 9.24,
          "fat_g": 31.96
        },
        "delta_vs_target": {
          "kcal": -2.55,
          "protein_g": 0.1,
          "carbs_g": 0.07,
          "fat_g": 1.27
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L102",
        "name": "Frango tikka + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 313.7,
                  "macros": {
                    "kcal": 352.66,
                    "protein_g": 71.68,
                    "carbs_g": 0.0,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 229.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 229.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 23.0,
                  "macros": {
                    "kcal": 207.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 23.0
                  },
                  "nutrition_basis_grams": 23.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 567.31,
                "protein_g": 72.29,
                "carbs_g": 0.28,
                "fat_g": 30.69
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 175.0,
                  "macros": {
                    "kcal": 47.25,
                    "protein_g": 4.74,
                    "carbs_g": 7.77,
                    "fat_g": 0.95
                  },
                  "nutrition_basis_grams": 175.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 175.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 47.25,
                "protein_g": 4.74,
                "carbs_g": 7.77,
                "fat_g": 0.95
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 621.41,
          "protein_g": 77.88,
          "carbs_g": 9.32,
          "fat_g": 31.71
        },
        "delta_vs_target": {
          "kcal": -7.59,
          "protein_g": 0.83,
          "carbs_g": 0.15,
          "fat_g": 1.02
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L103",
        "name": "Frango tikka + Couve-flor assada com especiarias + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 320.5,
                  "macros": {
                    "kcal": 360.36,
                    "protein_g": 73.24,
                    "carbs_g": 0.0,
                    "fat_g": 7.39
                  },
                  "nutrition_basis_grams": 234.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 234.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 23.0,
                  "macros": {
                    "kcal": 207.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 23.0
                  },
                  "nutrition_basis_grams": 23.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 575.01,
                "protein_g": 73.85,
                "carbs_g": 0.28,
                "fat_g": 30.84
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 235.7,
                  "macros": {
                    "kcal": 39.27,
                    "protein_g": 2.96,
                    "carbs_g": 7.88,
                    "fat_g": 0.46
                  },
                  "nutrition_basis_grams": 231.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 231.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 39.27,
                "protein_g": 2.96,
                "carbs_g": 7.88,
                "fat_g": 0.46
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 621.13,
          "protein_g": 77.66,
          "carbs_g": 9.43,
          "fat_g": 31.37
        },
        "delta_vs_target": {
          "kcal": -7.87,
          "protein_g": 0.61,
          "carbs_g": 0.26,
          "fat_g": 0.68
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L104",
        "name": "Frango tikka + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 319.2,
                  "macros": {
                    "kcal": 358.82,
                    "protein_g": 72.93,
                    "carbs_g": 0.0,
                    "fat_g": 7.36
                  },
                  "nutrition_basis_grams": 233.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 233.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 21.0,
                  "macros": {
                    "kcal": 189.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 21.0
                  },
                  "nutrition_basis_grams": 21.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 555.47,
                "protein_g": 73.54,
                "carbs_g": 0.28,
                "fat_g": 28.81
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 133.7,
                  "macros": {
                    "kcal": 27.37,
                    "protein_g": 1.9,
                    "carbs_g": 6.0,
                    "fat_g": 0.18
                  },
                  "nutrition_basis_grams": 119.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 119.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 62.23,
                "protein_g": 3.02,
                "carbs_g": 7.77,
                "fat_g": 3.02
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.55,
          "protein_g": 77.41,
          "carbs_g": 9.32,
          "fat_g": 31.9
        },
        "delta_vs_target": {
          "kcal": -4.45,
          "protein_g": 0.36,
          "carbs_g": 0.15,
          "fat_g": 1.21
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L105",
        "name": "Frango tikka + Vagem com gergelim e gengibre + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 320.5,
                  "macros": {
                    "kcal": 360.36,
                    "protein_g": 73.24,
                    "carbs_g": 0.0,
                    "fat_g": 7.39
                  },
                  "nutrition_basis_grams": 234.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 234.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 584.01,
                "protein_g": 73.85,
                "carbs_g": 0.28,
                "fat_g": 31.84
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 171.9,
                  "macros": {
                    "kcal": 35.19,
                    "protein_g": 2.45,
                    "carbs_g": 7.71,
                    "fat_g": 0.23
                  },
                  "nutrition_basis_grams": 153.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 153.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 35.19,
                "protein_g": 2.45,
                "carbs_g": 7.71,
                "fat_g": 0.23
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 626.05,
          "protein_g": 77.15,
          "carbs_g": 9.26,
          "fat_g": 32.14
        },
        "delta_vs_target": {
          "kcal": -2.95,
          "protein_g": 0.1,
          "carbs_g": 0.09,
          "fat_g": 1.45
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L106",
        "name": "Frango tikka + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 313.7,
                  "macros": {
                    "kcal": 352.66,
                    "protein_g": 71.68,
                    "carbs_g": 0.0,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 229.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 229.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 558.31,
                "protein_g": 72.29,
                "carbs_g": 0.28,
                "fat_g": 29.69
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 682.1,
                  "macros": {
                    "kcal": 32.47,
                    "protein_g": 2.31,
                    "carbs_g": 7.6,
                    "fat_g": 0.27
                  },
                  "nutrition_basis_grams": 191.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 191.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 59.35,
                "protein_g": 4.22,
                "carbs_g": 7.75,
                "fat_g": 2.37
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.51,
          "protein_g": 77.36,
          "carbs_g": 9.3,
          "fat_g": 32.13
        },
        "delta_vs_target": {
          "kcal": -4.49,
          "protein_g": 0.31,
          "carbs_g": 0.13,
          "fat_g": 1.44
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L107",
        "name": "Frango tikka + Arroz de couve-flor com cominho e coentro + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 320.5,
                  "macros": {
                    "kcal": 360.36,
                    "protein_g": 73.24,
                    "carbs_g": 0.0,
                    "fat_g": 7.39
                  },
                  "nutrition_basis_grams": 234.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 234.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 23.0,
                  "macros": {
                    "kcal": 207.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 23.0
                  },
                  "nutrition_basis_grams": 23.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 575.01,
                "protein_g": 73.85,
                "carbs_g": 0.28,
                "fat_g": 30.84
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 235.7,
                  "macros": {
                    "kcal": 39.27,
                    "protein_g": 2.96,
                    "carbs_g": 7.88,
                    "fat_g": 0.46
                  },
                  "nutrition_basis_grams": 231.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 231.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 39.27,
                "protein_g": 2.96,
                "carbs_g": 7.88,
                "fat_g": 0.46
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 621.13,
          "protein_g": 77.66,
          "carbs_g": 9.43,
          "fat_g": 31.37
        },
        "delta_vs_target": {
          "kcal": -7.87,
          "protein_g": 0.61,
          "carbs_g": 0.26,
          "fat_g": 0.68
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L108",
        "name": "Frango tikka + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 321.9,
                  "macros": {
                    "kcal": 361.9,
                    "protein_g": 73.56,
                    "carbs_g": 0.0,
                    "fat_g": 7.43
                  },
                  "nutrition_basis_grams": 235.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 235.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 585.55,
                "protein_g": 74.17,
                "carbs_g": 0.28,
                "fat_g": 31.88
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 692.9,
                  "macros": {
                    "kcal": 32.98,
                    "protein_g": 2.35,
                    "carbs_g": 7.72,
                    "fat_g": 0.27
                  },
                  "nutrition_basis_grams": 194.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 194.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 32.98,
                "protein_g": 2.35,
                "carbs_g": 7.72,
                "fat_g": 0.27
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 625.38,
          "protein_g": 77.37,
          "carbs_g": 9.27,
          "fat_g": 32.22
        },
        "delta_vs_target": {
          "kcal": -3.62,
          "protein_g": 0.32,
          "carbs_g": 0.1,
          "fat_g": 1.53
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L109",
        "name": "Frango ao curry seco + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 313.7,
                  "macros": {
                    "kcal": 352.66,
                    "protein_g": 71.68,
                    "carbs_g": 0.0,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 229.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 229.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 568.66,
                "protein_g": 71.68,
                "carbs_g": 0.0,
                "fat_g": 31.24
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 180.0,
                  "macros": {
                    "kcal": 48.6,
                    "protein_g": 4.88,
                    "carbs_g": 7.99,
                    "fat_g": 0.97
                  },
                  "nutrition_basis_grams": 180.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 180.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 48.6,
                "protein_g": 4.88,
                "carbs_g": 7.99,
                "fat_g": 0.97
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.11,
          "protein_g": 77.41,
          "carbs_g": 9.26,
          "fat_g": 32.28
        },
        "delta_vs_target": {
          "kcal": -4.89,
          "protein_g": 0.36,
          "carbs_g": 0.09,
          "fat_g": 1.59
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L110",
        "name": "Frango ao curry seco + Couve-flor assada com especiarias + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 321.9,
                  "macros": {
                    "kcal": 361.9,
                    "protein_g": 73.56,
                    "carbs_g": 0.0,
                    "fat_g": 7.43
                  },
                  "nutrition_basis_grams": 235.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 235.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 577.9,
                "protein_g": 73.56,
                "carbs_g": 0.0,
                "fat_g": 31.43
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 239.8,
                  "macros": {
                    "kcal": 39.95,
                    "protein_g": 3.01,
                    "carbs_g": 8.01,
                    "fat_g": 0.47
                  },
                  "nutrition_basis_grams": 235.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 235.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 39.95,
                "protein_g": 3.01,
                "carbs_g": 8.01,
                "fat_g": 0.47
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.7,
          "protein_g": 77.42,
          "carbs_g": 9.28,
          "fat_g": 31.97
        },
        "delta_vs_target": {
          "kcal": -4.3,
          "protein_g": 0.37,
          "carbs_g": 0.11,
          "fat_g": 1.28
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L111",
        "name": "Frango ao curry seco + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 323.3,
                  "macros": {
                    "kcal": 363.44,
                    "protein_g": 73.87,
                    "carbs_g": 0.0,
                    "fat_g": 7.46
                  },
                  "nutrition_basis_grams": 236.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 236.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 21.0,
                  "macros": {
                    "kcal": 189.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 21.0
                  },
                  "nutrition_basis_grams": 21.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 552.44,
                "protein_g": 73.87,
                "carbs_g": 0.0,
                "fat_g": 28.46
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 140.4,
                  "macros": {
                    "kcal": 28.75,
                    "protein_g": 2.0,
                    "carbs_g": 6.3,
                    "fat_g": 0.19
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 63.61,
                "protein_g": 3.12,
                "carbs_g": 8.07,
                "fat_g": 3.03
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 622.9,
          "protein_g": 77.84,
          "carbs_g": 9.34,
          "fat_g": 31.56
        },
        "delta_vs_target": {
          "kcal": -6.1,
          "protein_g": 0.79,
          "carbs_g": 0.17,
          "fat_g": 0.87
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L112",
        "name": "Frango ao curry seco + Vagem com gergelim e gengibre + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 324.7,
                  "macros": {
                    "kcal": 364.98,
                    "protein_g": 74.18,
                    "carbs_g": 0.0,
                    "fat_g": 7.49
                  },
                  "nutrition_basis_grams": 237.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 237.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 580.98,
                "protein_g": 74.18,
                "carbs_g": 0.0,
                "fat_g": 31.49
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 178.7,
                  "macros": {
                    "kcal": 36.57,
                    "protein_g": 2.54,
                    "carbs_g": 8.01,
                    "fat_g": 0.24
                  },
                  "nutrition_basis_grams": 159.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 159.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 36.57,
                "protein_g": 2.54,
                "carbs_g": 8.01,
                "fat_g": 0.24
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.4,
          "protein_g": 77.57,
          "carbs_g": 9.28,
          "fat_g": 31.8
        },
        "delta_vs_target": {
          "kcal": -4.6,
          "protein_g": 0.52,
          "carbs_g": 0.11,
          "fat_g": 1.11
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L113",
        "name": "Frango ao curry seco + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 317.8,
                  "macros": {
                    "kcal": 357.28,
                    "protein_g": 72.62,
                    "carbs_g": 0.0,
                    "fat_g": 7.33
                  },
                  "nutrition_basis_grams": 232.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 232.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 555.28,
                "protein_g": 72.62,
                "carbs_g": 0.0,
                "fat_g": 29.33
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 707.1,
                  "macros": {
                    "kcal": 33.66,
                    "protein_g": 2.4,
                    "carbs_g": 7.88,
                    "fat_g": 0.28
                  },
                  "nutrition_basis_grams": 198.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 198.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 60.54,
                "protein_g": 4.31,
                "carbs_g": 8.03,
                "fat_g": 2.38
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 622.67,
          "protein_g": 77.78,
          "carbs_g": 9.3,
          "fat_g": 31.78
        },
        "delta_vs_target": {
          "kcal": -6.33,
          "protein_g": 0.73,
          "carbs_g": 0.13,
          "fat_g": 1.09
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L114",
        "name": "Frango ao curry seco + Arroz de couve-flor com cominho e coentro + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 321.9,
                  "macros": {
                    "kcal": 361.9,
                    "protein_g": 73.56,
                    "carbs_g": 0.0,
                    "fat_g": 7.43
                  },
                  "nutrition_basis_grams": 235.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 235.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 577.9,
                "protein_g": 73.56,
                "carbs_g": 0.0,
                "fat_g": 31.43
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 239.8,
                  "macros": {
                    "kcal": 39.95,
                    "protein_g": 3.01,
                    "carbs_g": 8.01,
                    "fat_g": 0.47
                  },
                  "nutrition_basis_grams": 235.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 235.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 39.95,
                "protein_g": 3.01,
                "carbs_g": 8.01,
                "fat_g": 0.47
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.7,
          "protein_g": 77.42,
          "carbs_g": 9.28,
          "fat_g": 31.97
        },
        "delta_vs_target": {
          "kcal": -4.3,
          "protein_g": 0.37,
          "carbs_g": 0.11,
          "fat_g": 1.28
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L115",
        "name": "Frango ao curry seco + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 324.7,
                  "macros": {
                    "kcal": 364.98,
                    "protein_g": 74.18,
                    "carbs_g": 0.0,
                    "fat_g": 7.49
                  },
                  "nutrition_basis_grams": 237.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 237.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 580.98,
                "protein_g": 74.18,
                "carbs_g": 0.0,
                "fat_g": 31.49
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 725.0,
                  "macros": {
                    "kcal": 34.51,
                    "protein_g": 2.46,
                    "carbs_g": 8.08,
                    "fat_g": 0.28
                  },
                  "nutrition_basis_grams": 203.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 203.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 34.51,
                "protein_g": 2.46,
                "carbs_g": 8.08,
                "fat_g": 0.28
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 622.34,
          "protein_g": 77.49,
          "carbs_g": 9.35,
          "fat_g": 31.84
        },
        "delta_vs_target": {
          "kcal": -6.66,
          "protein_g": 0.44,
          "carbs_g": 0.18,
          "fat_g": 1.15
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L116",
        "name": "Almôndegas de frango com limão e manjericão + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M13",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 313.7,
                  "macros": {
                    "kcal": 352.66,
                    "protein_g": 71.68,
                    "carbs_g": 0.0,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 229.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 229.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 568.66,
                "protein_g": 71.68,
                "carbs_g": 0.0,
                "fat_g": 31.24
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 180.0,
                  "macros": {
                    "kcal": 48.6,
                    "protein_g": 4.88,
                    "carbs_g": 7.99,
                    "fat_g": 0.97
                  },
                  "nutrition_basis_grams": 180.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 180.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 48.6,
                "protein_g": 4.88,
                "carbs_g": 7.99,
                "fat_g": 0.97
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.11,
          "protein_g": 77.41,
          "carbs_g": 9.26,
          "fat_g": 32.28
        },
        "delta_vs_target": {
          "kcal": -4.89,
          "protein_g": 0.36,
          "carbs_g": 0.09,
          "fat_g": 1.59
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L117",
        "name": "Almôndegas de frango com limão e manjericão + Brócolis com ervas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M13",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 313.7,
                  "macros": {
                    "kcal": 352.66,
                    "protein_g": 71.68,
                    "carbs_g": 0.0,
                    "fat_g": 7.24
                  },
                  "nutrition_basis_grams": 229.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 229.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 568.66,
                "protein_g": 71.68,
                "carbs_g": 0.0,
                "fat_g": 31.24
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 180.0,
                  "macros": {
                    "kcal": 48.6,
                    "protein_g": 4.88,
                    "carbs_g": 7.99,
                    "fat_g": 0.97
                  },
                  "nutrition_basis_grams": 180.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 180.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 48.6,
                "protein_g": 4.88,
                "carbs_g": 7.99,
                "fat_g": 0.97
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.11,
          "protein_g": 77.41,
          "carbs_g": 9.26,
          "fat_g": 32.28
        },
        "delta_vs_target": {
          "kcal": -4.89,
          "protein_g": 0.36,
          "carbs_g": 0.09,
          "fat_g": 1.59
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L118",
        "name": "Almôndegas de frango com limão e manjericão + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M13",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 323.3,
                  "macros": {
                    "kcal": 363.44,
                    "protein_g": 73.87,
                    "carbs_g": 0.0,
                    "fat_g": 7.46
                  },
                  "nutrition_basis_grams": 236.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 236.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 21.0,
                  "macros": {
                    "kcal": 189.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 21.0
                  },
                  "nutrition_basis_grams": 21.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 552.44,
                "protein_g": 73.87,
                "carbs_g": 0.0,
                "fat_g": 28.46
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 140.4,
                  "macros": {
                    "kcal": 28.75,
                    "protein_g": 2.0,
                    "carbs_g": 6.3,
                    "fat_g": 0.19
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 63.61,
                "protein_g": 3.12,
                "carbs_g": 8.07,
                "fat_g": 3.03
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 622.9,
          "protein_g": 77.84,
          "carbs_g": 9.34,
          "fat_g": 31.56
        },
        "delta_vs_target": {
          "kcal": -6.1,
          "protein_g": 0.79,
          "carbs_g": 0.17,
          "fat_g": 0.87
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L119",
        "name": "Almôndegas de frango com limão e manjericão + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M13",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 317.8,
                  "macros": {
                    "kcal": 357.28,
                    "protein_g": 72.62,
                    "carbs_g": 0.0,
                    "fat_g": 7.33
                  },
                  "nutrition_basis_grams": 232.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 232.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 555.28,
                "protein_g": 72.62,
                "carbs_g": 0.0,
                "fat_g": 29.33
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 707.1,
                  "macros": {
                    "kcal": 33.66,
                    "protein_g": 2.4,
                    "carbs_g": 7.88,
                    "fat_g": 0.28
                  },
                  "nutrition_basis_grams": 198.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 198.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 60.54,
                "protein_g": 4.31,
                "carbs_g": 8.03,
                "fat_g": 2.38
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 622.67,
          "protein_g": 77.78,
          "carbs_g": 9.3,
          "fat_g": 31.78
        },
        "delta_vs_target": {
          "kcal": -6.33,
          "protein_g": 0.73,
          "carbs_g": 0.13,
          "fat_g": 1.09
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L120",
        "name": "Almôndegas de frango com limão e manjericão + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M13",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 324.7,
                  "macros": {
                    "kcal": 364.98,
                    "protein_g": 74.18,
                    "carbs_g": 0.0,
                    "fat_g": 7.49
                  },
                  "nutrition_basis_grams": 237.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 237.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 580.98,
                "protein_g": 74.18,
                "carbs_g": 0.0,
                "fat_g": 31.49
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 725.0,
                  "macros": {
                    "kcal": 34.51,
                    "protein_g": 2.46,
                    "carbs_g": 8.08,
                    "fat_g": 0.28
                  },
                  "nutrition_basis_grams": 203.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 203.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 34.51,
                "protein_g": 2.46,
                "carbs_g": 8.08,
                "fat_g": 0.28
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 622.34,
          "protein_g": 77.49,
          "carbs_g": 9.35,
          "fat_g": 31.84
        },
        "delta_vs_target": {
          "kcal": -6.66,
          "protein_g": 0.44,
          "carbs_g": 0.18,
          "fat_g": 1.15
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L121",
        "name": "Almôndegas de frango com limão e manjericão + Vagem com limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M13",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 316.4,
                  "macros": {
                    "kcal": 355.74,
                    "protein_g": 72.3,
                    "carbs_g": 0.0,
                    "fat_g": 7.3
                  },
                  "nutrition_basis_grams": 231.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 231.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 553.74,
                "protein_g": 72.3,
                "carbs_g": 0.0,
                "fat_g": 29.3
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 176.4,
                  "macros": {
                    "kcal": 36.11,
                    "protein_g": 2.51,
                    "carbs_g": 7.91,
                    "fat_g": 0.24
                  },
                  "nutrition_basis_grams": 157.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 157.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 62.99,
                "protein_g": 4.42,
                "carbs_g": 8.06,
                "fat_g": 2.34
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 623.58,
          "protein_g": 77.57,
          "carbs_g": 9.33,
          "fat_g": 31.71
        },
        "delta_vs_target": {
          "kcal": -5.42,
          "protein_g": 0.52,
          "carbs_g": 0.16,
          "fat_g": 1.02
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L122",
        "name": "Almôndegas de frango com limão e manjericão + Berinjela assada com tomate e manjericão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M13",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 328.8,
                  "macros": {
                    "kcal": 369.6,
                    "protein_g": 75.12,
                    "carbs_g": 0.0,
                    "fat_g": 7.58
                  },
                  "nutrition_basis_grams": 240.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 240.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 585.6,
                "protein_g": 75.12,
                "carbs_g": 0.0,
                "fat_g": 31.58
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.4,
                    "protein_g": 0.31,
                    "carbs_g": 1.15,
                    "fat_g": 0.05
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 117.0,
                  "macros": {
                    "kcal": 28.6,
                    "protein_g": 0.87,
                    "carbs_g": 6.82,
                    "fat_g": 0.26
                  },
                  "nutrition_basis_grams": 110.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 110.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 34.0,
                "protein_g": 1.18,
                "carbs_g": 7.97,
                "fat_g": 0.31
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 626.45,
          "protein_g": 77.15,
          "carbs_g": 9.24,
          "fat_g": 31.96
        },
        "delta_vs_target": {
          "kcal": -2.55,
          "protein_g": 0.1,
          "carbs_g": 0.07,
          "fat_g": 1.27
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L123",
        "name": "Tilápia com alho e páprica + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M14",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 445.7,
                  "macros": {
                    "kcal": 349.44,
                    "protein_g": 72.07,
                    "carbs_g": 0.0,
                    "fat_g": 6.61
                  },
                  "nutrition_basis_grams": 312.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 312.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 565.44,
                "protein_g": 72.07,
                "carbs_g": 0.0,
                "fat_g": 30.61
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 182.0,
                  "macros": {
                    "kcal": 49.14,
                    "protein_g": 4.93,
                    "carbs_g": 8.08,
                    "fat_g": 0.98
                  },
                  "nutrition_basis_grams": 182.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 182.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 49.14,
                "protein_g": 4.93,
                "carbs_g": 8.08,
                "fat_g": 0.98
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 621.43,
          "protein_g": 77.85,
          "carbs_g": 9.35,
          "fat_g": 31.66
        },
        "delta_vs_target": {
          "kcal": -7.57,
          "protein_g": 0.8,
          "carbs_g": 0.18,
          "fat_g": 0.97
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L124",
        "name": "Tilápia com alho e páprica + Purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M14",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 457.1,
                  "macros": {
                    "kcal": 358.4,
                    "protein_g": 73.92,
                    "carbs_g": 0.0,
                    "fat_g": 6.78
                  },
                  "nutrition_basis_grams": 320.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 320.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 574.4,
                "protein_g": 73.92,
                "carbs_g": 0.0,
                "fat_g": 30.78
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 242.9,
                  "macros": {
                    "kcal": 40.46,
                    "protein_g": 3.05,
                    "carbs_g": 8.12,
                    "fat_g": 0.48
                  },
                  "nutrition_basis_grams": 238.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 238.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 40.46,
                "protein_g": 3.05,
                "carbs_g": 8.12,
                "fat_g": 0.48
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 621.71,
          "protein_g": 77.82,
          "carbs_g": 9.39,
          "fat_g": 31.33
        },
        "delta_vs_target": {
          "kcal": -7.29,
          "protein_g": 0.77,
          "carbs_g": 0.22,
          "fat_g": 0.64
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L125",
        "name": "Tilápia com alho e páprica + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M14",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 454.3,
                  "macros": {
                    "kcal": 356.16,
                    "protein_g": 73.46,
                    "carbs_g": 0.0,
                    "fat_g": 6.74
                  },
                  "nutrition_basis_grams": 318.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 318.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 554.16,
                "protein_g": 73.46,
                "carbs_g": 0.0,
                "fat_g": 28.74
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 139.3,
                  "macros": {
                    "kcal": 28.52,
                    "protein_g": 1.98,
                    "carbs_g": 6.25,
                    "fat_g": 0.19
                  },
                  "nutrition_basis_grams": 124.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 124.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 63.38,
                "protein_g": 3.1,
                "carbs_g": 8.02,
                "fat_g": 3.03
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.39,
          "protein_g": 77.41,
          "carbs_g": 9.29,
          "fat_g": 31.84
        },
        "delta_vs_target": {
          "kcal": -4.61,
          "protein_g": 0.36,
          "carbs_g": 0.12,
          "fat_g": 1.15
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L126",
        "name": "Tilápia com alho e páprica + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M14",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 447.1,
                  "macros": {
                    "kcal": 350.56,
                    "protein_g": 72.3,
                    "carbs_g": 0.0,
                    "fat_g": 6.64
                  },
                  "nutrition_basis_grams": 313.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 313.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 23.0,
                  "macros": {
                    "kcal": 207.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 23.0
                  },
                  "nutrition_basis_grams": 23.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 557.56,
                "protein_g": 72.3,
                "carbs_g": 0.0,
                "fat_g": 29.64
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 703.6,
                  "macros": {
                    "kcal": 33.49,
                    "protein_g": 2.38,
                    "carbs_g": 7.84,
                    "fat_g": 0.28
                  },
                  "nutrition_basis_grams": 197.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 197.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 60.37,
                "protein_g": 4.29,
                "carbs_g": 7.99,
                "fat_g": 2.38
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.78,
          "protein_g": 77.44,
          "carbs_g": 9.26,
          "fat_g": 32.09
        },
        "delta_vs_target": {
          "kcal": -4.22,
          "protein_g": 0.39,
          "carbs_g": 0.09,
          "fat_g": 1.4
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L127",
        "name": "Tilápia com alho e páprica + Arroz de couve-flor com cominho e coentro + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M14",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 457.1,
                  "macros": {
                    "kcal": 358.4,
                    "protein_g": 73.92,
                    "carbs_g": 0.0,
                    "fat_g": 6.78
                  },
                  "nutrition_basis_grams": 320.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 320.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 574.4,
                "protein_g": 73.92,
                "carbs_g": 0.0,
                "fat_g": 30.78
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 242.9,
                  "macros": {
                    "kcal": 40.46,
                    "protein_g": 3.05,
                    "carbs_g": 8.12,
                    "fat_g": 0.48
                  },
                  "nutrition_basis_grams": 238.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 238.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 40.46,
                "protein_g": 3.05,
                "carbs_g": 8.12,
                "fat_g": 0.48
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 621.71,
          "protein_g": 77.82,
          "carbs_g": 9.39,
          "fat_g": 31.33
        },
        "delta_vs_target": {
          "kcal": -7.29,
          "protein_g": 0.77,
          "carbs_g": 0.22,
          "fat_g": 0.64
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L128",
        "name": "Tilápia com alho e páprica + Vagem com limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M14",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 445.7,
                  "macros": {
                    "kcal": 349.44,
                    "protein_g": 72.07,
                    "carbs_g": 0.0,
                    "fat_g": 6.61
                  },
                  "nutrition_basis_grams": 312.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 312.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 23.0,
                  "macros": {
                    "kcal": 207.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 23.0
                  },
                  "nutrition_basis_grams": 23.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 556.44,
                "protein_g": 72.07,
                "carbs_g": 0.0,
                "fat_g": 29.61
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 174.2,
                  "macros": {
                    "kcal": 35.65,
                    "protein_g": 2.48,
                    "carbs_g": 7.81,
                    "fat_g": 0.23
                  },
                  "nutrition_basis_grams": 155.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 155.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 62.53,
                "protein_g": 4.39,
                "carbs_g": 7.96,
                "fat_g": 2.33
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 625.82,
          "protein_g": 77.31,
          "carbs_g": 9.23,
          "fat_g": 32.01
        },
        "delta_vs_target": {
          "kcal": -3.18,
          "protein_g": 0.26,
          "carbs_g": 0.06,
          "fat_g": 1.32
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L129",
        "name": "Tilápia com alho e páprica + Berinjela assada com tomate e manjericão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M14",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 467.1,
                  "macros": {
                    "kcal": 366.24,
                    "protein_g": 75.54,
                    "carbs_g": 0.0,
                    "fat_g": 6.93
                  },
                  "nutrition_basis_grams": 327.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 327.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 24.0,
                  "macros": {
                    "kcal": 216.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 24.0
                  },
                  "nutrition_basis_grams": 24.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 582.24,
                "protein_g": 75.54,
                "carbs_g": 0.0,
                "fat_g": 30.93
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.4,
                    "protein_g": 0.31,
                    "carbs_g": 1.15,
                    "fat_g": 0.05
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 119.1,
                  "macros": {
                    "kcal": 29.12,
                    "protein_g": 0.88,
                    "carbs_g": 6.94,
                    "fat_g": 0.27
                  },
                  "nutrition_basis_grams": 112.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 112.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 34.52,
                "protein_g": 1.19,
                "carbs_g": 8.09,
                "fat_g": 0.32
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 623.61,
          "protein_g": 77.58,
          "carbs_g": 9.36,
          "fat_g": 31.32
        },
        "delta_vs_target": {
          "kcal": -5.39,
          "protein_g": 0.53,
          "carbs_g": 0.19,
          "fat_g": 0.63
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L130",
        "name": "Tilápia ao parmesão na air fryer/forno + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M15",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 35.84,
                    "protein_g": 2.55,
                    "carbs_g": 0.2,
                    "fat_g": 2.8
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 428.6,
                  "macros": {
                    "kcal": 336.0,
                    "protein_g": 69.3,
                    "carbs_g": 0.0,
                    "fat_g": 6.36
                  },
                  "nutrition_basis_grams": 300.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 300.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 569.84,
                "protein_g": 71.85,
                "carbs_g": 0.2,
                "fat_g": 31.16
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 176.0,
                  "macros": {
                    "kcal": 47.52,
                    "protein_g": 4.77,
                    "carbs_g": 7.81,
                    "fat_g": 0.95
                  },
                  "nutrition_basis_grams": 176.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 176.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 47.52,
                "protein_g": 4.77,
                "carbs_g": 7.81,
                "fat_g": 0.95
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.21,
          "protein_g": 77.47,
          "carbs_g": 9.28,
          "fat_g": 32.18
        },
        "delta_vs_target": {
          "kcal": -4.79,
          "protein_g": 0.42,
          "carbs_g": 0.11,
          "fat_g": 1.49
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L131",
        "name": "Tilápia ao parmesão na air fryer/forno + Purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M15",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 35.84,
                    "protein_g": 2.55,
                    "carbs_g": 0.2,
                    "fat_g": 2.8
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 440.0,
                  "macros": {
                    "kcal": 344.96,
                    "protein_g": 71.15,
                    "carbs_g": 0.0,
                    "fat_g": 6.53
                  },
                  "nutrition_basis_grams": 308.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 308.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 578.8,
                "protein_g": 73.7,
                "carbs_g": 0.2,
                "fat_g": 31.33
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 233.7,
                  "macros": {
                    "kcal": 38.93,
                    "protein_g": 2.93,
                    "carbs_g": 7.81,
                    "fat_g": 0.46
                  },
                  "nutrition_basis_grams": 229.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 229.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 38.93,
                "protein_g": 2.93,
                "carbs_g": 7.81,
                "fat_g": 0.46
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.58,
          "protein_g": 77.48,
          "carbs_g": 9.28,
          "fat_g": 31.86
        },
        "delta_vs_target": {
          "kcal": -4.42,
          "protein_g": 0.43,
          "carbs_g": 0.11,
          "fat_g": 1.17
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L132",
        "name": "Tilápia ao parmesão na air fryer/forno + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M15",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 35.84,
                    "protein_g": 2.55,
                    "carbs_g": 0.2,
                    "fat_g": 2.8
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 441.4,
                  "macros": {
                    "kcal": 346.08,
                    "protein_g": 71.38,
                    "carbs_g": 0.0,
                    "fat_g": 6.55
                  },
                  "nutrition_basis_grams": 309.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 309.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 19.0,
                  "macros": {
                    "kcal": 171.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 19.0
                  },
                  "nutrition_basis_grams": 19.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 552.92,
                "protein_g": 73.93,
                "carbs_g": 0.2,
                "fat_g": 28.35
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 136.0,
                  "macros": {
                    "kcal": 27.83,
                    "protein_g": 1.94,
                    "carbs_g": 6.1,
                    "fat_g": 0.18
                  },
                  "nutrition_basis_grams": 121.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 121.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 62.69,
                "protein_g": 3.06,
                "carbs_g": 7.87,
                "fat_g": 3.02
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 622.46,
          "protein_g": 77.84,
          "carbs_g": 9.34,
          "fat_g": 31.44
        },
        "delta_vs_target": {
          "kcal": -6.54,
          "protein_g": 0.79,
          "carbs_g": 0.17,
          "fat_g": 0.75
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L133",
        "name": "Tilápia ao parmesão na air fryer/forno + Couve-flor assada com especiarias + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M15",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 35.84,
                    "protein_g": 2.55,
                    "carbs_g": 0.2,
                    "fat_g": 2.8
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 440.0,
                  "macros": {
                    "kcal": 344.96,
                    "protein_g": 71.15,
                    "carbs_g": 0.0,
                    "fat_g": 6.53
                  },
                  "nutrition_basis_grams": 308.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 308.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 578.8,
                "protein_g": 73.7,
                "carbs_g": 0.2,
                "fat_g": 31.33
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 233.7,
                  "macros": {
                    "kcal": 38.93,
                    "protein_g": 2.93,
                    "carbs_g": 7.81,
                    "fat_g": 0.46
                  },
                  "nutrition_basis_grams": 229.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 229.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 38.93,
                "protein_g": 2.93,
                "carbs_g": 7.81,
                "fat_g": 0.46
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.58,
          "protein_g": 77.48,
          "carbs_g": 9.28,
          "fat_g": 31.86
        },
        "delta_vs_target": {
          "kcal": -4.42,
          "protein_g": 0.43,
          "carbs_g": 0.11,
          "fat_g": 1.17
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L134",
        "name": "Tilápia ao parmesão na air fryer/forno + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M15",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 35.84,
                    "protein_g": 2.55,
                    "carbs_g": 0.2,
                    "fat_g": 2.8
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 444.3,
                  "macros": {
                    "kcal": 348.32,
                    "protein_g": 71.84,
                    "carbs_g": 0.0,
                    "fat_g": 6.59
                  },
                  "nutrition_basis_grams": 311.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 311.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 582.16,
                "protein_g": 74.39,
                "carbs_g": 0.2,
                "fat_g": 31.39
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 707.1,
                  "macros": {
                    "kcal": 33.66,
                    "protein_g": 2.4,
                    "carbs_g": 7.88,
                    "fat_g": 0.28
                  },
                  "nutrition_basis_grams": 198.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 198.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 33.66,
                "protein_g": 2.4,
                "carbs_g": 7.88,
                "fat_g": 0.28
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 622.67,
          "protein_g": 77.64,
          "carbs_g": 9.35,
          "fat_g": 31.74
        },
        "delta_vs_target": {
          "kcal": -6.33,
          "protein_g": 0.59,
          "carbs_g": 0.18,
          "fat_g": 1.05
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L135",
        "name": "Tilápia ao parmesão na air fryer/forno + Arroz de couve-flor com cominho e coentro + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M15",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 35.84,
                    "protein_g": 2.55,
                    "carbs_g": 0.2,
                    "fat_g": 2.8
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 440.0,
                  "macros": {
                    "kcal": 344.96,
                    "protein_g": 71.15,
                    "carbs_g": 0.0,
                    "fat_g": 6.53
                  },
                  "nutrition_basis_grams": 308.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 308.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 578.8,
                "protein_g": 73.7,
                "carbs_g": 0.2,
                "fat_g": 31.33
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 233.7,
                  "macros": {
                    "kcal": 38.93,
                    "protein_g": 2.93,
                    "carbs_g": 7.81,
                    "fat_g": 0.46
                  },
                  "nutrition_basis_grams": 229.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 229.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 38.93,
                "protein_g": 2.93,
                "carbs_g": 7.81,
                "fat_g": 0.46
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.58,
          "protein_g": 77.48,
          "carbs_g": 9.28,
          "fat_g": 31.86
        },
        "delta_vs_target": {
          "kcal": -4.42,
          "protein_g": 0.43,
          "carbs_g": 0.11,
          "fat_g": 1.17
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L136",
        "name": "Tilápia ao parmesão na air fryer/forno + Berinjela assada com tomate e manjericão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M15",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 35.84,
                    "protein_g": 2.55,
                    "carbs_g": 0.2,
                    "fat_g": 2.8
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 450.0,
                  "macros": {
                    "kcal": 352.8,
                    "protein_g": 72.77,
                    "carbs_g": 0.0,
                    "fat_g": 6.68
                  },
                  "nutrition_basis_grams": 315.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 315.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 586.64,
                "protein_g": 75.32,
                "carbs_g": 0.2,
                "fat_g": 31.48
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.4,
                    "protein_g": 0.31,
                    "carbs_g": 1.15,
                    "fat_g": 0.05
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 113.8,
                  "macros": {
                    "kcal": 27.82,
                    "protein_g": 0.85,
                    "carbs_g": 6.63,
                    "fat_g": 0.26
                  },
                  "nutrition_basis_grams": 107.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 107.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 33.22,
                "protein_g": 1.16,
                "carbs_g": 7.78,
                "fat_g": 0.31
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 626.71,
          "protein_g": 77.33,
          "carbs_g": 9.25,
          "fat_g": 31.86
        },
        "delta_vs_target": {
          "kcal": -2.29,
          "protein_g": 0.28,
          "carbs_g": 0.08,
          "fat_g": 1.17
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L137",
        "name": "Lombo suíno com limão, alho e alecrim + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M16",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 315.6,
                  "macros": {
                    "kcal": 404.0,
                    "protein_g": 72.11,
                    "carbs_g": 0.0,
                    "fat_g": 12.93
                  },
                  "nutrition_basis_grams": 202.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 202.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 162.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 566.0,
                "protein_g": 72.11,
                "carbs_g": 0.0,
                "fat_g": 30.93
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 181.0,
                  "macros": {
                    "kcal": 48.87,
                    "protein_g": 4.91,
                    "carbs_g": 8.04,
                    "fat_g": 0.98
                  },
                  "nutrition_basis_grams": 181.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 181.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 48.87,
                "protein_g": 4.91,
                "carbs_g": 8.04,
                "fat_g": 0.98
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 621.72,
          "protein_g": 77.87,
          "carbs_g": 9.31,
          "fat_g": 31.98
        },
        "delta_vs_target": {
          "kcal": -7.28,
          "protein_g": 0.82,
          "carbs_g": 0.14,
          "fat_g": 1.29
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L138",
        "name": "Lombo suíno com limão, alho e alecrim + Purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M16",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 323.4,
                  "macros": {
                    "kcal": 414.0,
                    "protein_g": 73.9,
                    "carbs_g": 0.0,
                    "fat_g": 13.25
                  },
                  "nutrition_basis_grams": 207.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 207.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 162.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 576.0,
                "protein_g": 73.9,
                "carbs_g": 0.0,
                "fat_g": 31.25
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 240.8,
                  "macros": {
                    "kcal": 40.12,
                    "protein_g": 3.02,
                    "carbs_g": 8.05,
                    "fat_g": 0.47
                  },
                  "nutrition_basis_grams": 236.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 236.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 40.12,
                "protein_g": 3.02,
                "carbs_g": 8.05,
                "fat_g": 0.47
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 622.97,
          "protein_g": 77.77,
          "carbs_g": 9.32,
          "fat_g": 31.79
        },
        "delta_vs_target": {
          "kcal": -6.03,
          "protein_g": 0.72,
          "carbs_g": 0.15,
          "fat_g": 1.1
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L139",
        "name": "Lombo suíno com limão, alho e alecrim + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M16",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 320.3,
                  "macros": {
                    "kcal": 410.0,
                    "protein_g": 73.19,
                    "carbs_g": 0.0,
                    "fat_g": 13.12
                  },
                  "nutrition_basis_grams": 205.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 205.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 554.0,
                "protein_g": 73.19,
                "carbs_g": 0.0,
                "fat_g": 29.12
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 140.4,
                  "macros": {
                    "kcal": 28.75,
                    "protein_g": 2.0,
                    "carbs_g": 6.3,
                    "fat_g": 0.19
                  },
                  "nutrition_basis_grams": 125.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 125.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 63.61,
                "protein_g": 3.12,
                "carbs_g": 8.07,
                "fat_g": 3.03
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.46,
          "protein_g": 77.16,
          "carbs_g": 9.34,
          "fat_g": 32.22
        },
        "delta_vs_target": {
          "kcal": -4.54,
          "protein_g": 0.11,
          "carbs_g": 0.17,
          "fat_g": 1.53
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L140",
        "name": "Lombo suíno com limão, alho e alecrim + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M16",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 315.6,
                  "macros": {
                    "kcal": 404.0,
                    "protein_g": 72.11,
                    "carbs_g": 0.0,
                    "fat_g": 12.93
                  },
                  "nutrition_basis_grams": 202.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 202.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 153.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 17.0
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 557.0,
                "protein_g": 72.11,
                "carbs_g": 0.0,
                "fat_g": 29.93
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 707.1,
                  "macros": {
                    "kcal": 33.66,
                    "protein_g": 2.4,
                    "carbs_g": 7.88,
                    "fat_g": 0.28
                  },
                  "nutrition_basis_grams": 198.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 198.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 60.54,
                "protein_g": 4.31,
                "carbs_g": 8.03,
                "fat_g": 2.38
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.39,
          "protein_g": 77.27,
          "carbs_g": 9.3,
          "fat_g": 32.38
        },
        "delta_vs_target": {
          "kcal": -4.61,
          "protein_g": 0.22,
          "carbs_g": 0.13,
          "fat_g": 1.69
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L141",
        "name": "Lombo suíno com limão, alho e alecrim + Cogumelos ao alho e ervas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M16",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 314.1,
                  "macros": {
                    "kcal": 402.0,
                    "protein_g": 71.76,
                    "carbs_g": 0.0,
                    "fat_g": 12.86
                  },
                  "nutrition_basis_grams": 201.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 201.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 153.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 17.0
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 555.0,
                "protein_g": 71.76,
                "carbs_g": 0.0,
                "fat_g": 29.86
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 397.7,
                  "macros": {
                    "kcal": 66.5,
                    "protein_g": 4.6,
                    "carbs_g": 7.89,
                    "fat_g": 0.75
                  },
                  "nutrition_basis_grams": 175.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 175.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 66.5,
                "protein_g": 4.6,
                "carbs_g": 7.89,
                "fat_g": 0.75
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 628.35,
          "protein_g": 77.21,
          "carbs_g": 9.16,
          "fat_g": 30.68
        },
        "delta_vs_target": {
          "kcal": -0.65,
          "protein_g": 0.16,
          "carbs_g": -0.01,
          "fat_g": -0.01
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L142",
        "name": "Lombo suíno com limão, alho e alecrim + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M16",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 326.6,
                  "macros": {
                    "kcal": 418.0,
                    "protein_g": 74.61,
                    "carbs_g": 0.0,
                    "fat_g": 13.38
                  },
                  "nutrition_basis_grams": 209.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 209.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 162.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 580.0,
                "protein_g": 74.61,
                "carbs_g": 0.0,
                "fat_g": 31.38
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 725.0,
                  "macros": {
                    "kcal": 34.51,
                    "protein_g": 2.46,
                    "carbs_g": 8.08,
                    "fat_g": 0.28
                  },
                  "nutrition_basis_grams": 203.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 203.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 34.51,
                "protein_g": 2.46,
                "carbs_g": 8.08,
                "fat_g": 0.28
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 621.36,
          "protein_g": 77.92,
          "carbs_g": 9.35,
          "fat_g": 31.73
        },
        "delta_vs_target": {
          "kcal": -7.64,
          "protein_g": 0.87,
          "carbs_g": 0.18,
          "fat_g": 1.04
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L143",
        "name": "Lombo suíno com limão, alho e alecrim + Vagem com limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M16",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 317.2,
                  "macros": {
                    "kcal": 406.0,
                    "protein_g": 72.47,
                    "carbs_g": 0.0,
                    "fat_g": 12.99
                  },
                  "nutrition_basis_grams": 203.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 203.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 550.0,
                "protein_g": 72.47,
                "carbs_g": 0.0,
                "fat_g": 28.99
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 178.7,
                  "macros": {
                    "kcal": 36.57,
                    "protein_g": 2.54,
                    "carbs_g": 8.01,
                    "fat_g": 0.24
                  },
                  "nutrition_basis_grams": 159.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 159.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 63.45,
                "protein_g": 4.45,
                "carbs_g": 8.16,
                "fat_g": 2.34
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 620.3,
          "protein_g": 77.77,
          "carbs_g": 9.43,
          "fat_g": 31.4
        },
        "delta_vs_target": {
          "kcal": -8.7,
          "protein_g": 0.72,
          "carbs_g": 0.26,
          "fat_g": 0.71
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L144",
        "name": "Lombo suíno estilo stroganoff leve + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M17",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 79.5,
                  "macros": {
                    "kcal": 13.3,
                    "protein_g": 0.92,
                    "carbs_g": 1.58,
                    "fat_g": 0.15
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 35.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 310.9,
                  "macros": {
                    "kcal": 398.0,
                    "protein_g": 71.04,
                    "carbs_g": 0.0,
                    "fat_g": 12.74
                  },
                  "nutrition_basis_grams": 199.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 199.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 162.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 580.95,
                "protein_g": 72.57,
                "carbs_g": 1.86,
                "fat_g": 31.34
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 138.0,
                  "macros": {
                    "kcal": 37.26,
                    "protein_g": 3.74,
                    "carbs_g": 6.13,
                    "fat_g": 0.75
                  },
                  "nutrition_basis_grams": 138.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 138.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 37.26,
                "protein_g": 3.74,
                "carbs_g": 6.13,
                "fat_g": 0.75
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 625.06,
          "protein_g": 77.16,
          "carbs_g": 9.26,
          "fat_g": 32.16
        },
        "delta_vs_target": {
          "kcal": -3.94,
          "protein_g": 0.11,
          "carbs_g": 0.09,
          "fat_g": 1.47
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L145",
        "name": "Lombo suíno estilo stroganoff leve + Purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M17",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 79.5,
                  "macros": {
                    "kcal": 13.3,
                    "protein_g": 0.92,
                    "carbs_g": 1.58,
                    "fat_g": 0.15
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 35.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 317.2,
                  "macros": {
                    "kcal": 406.0,
                    "protein_g": 72.47,
                    "carbs_g": 0.0,
                    "fat_g": 12.99
                  },
                  "nutrition_basis_grams": 203.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 203.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 162.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 588.95,
                "protein_g": 74.0,
                "carbs_g": 1.86,
                "fat_g": 31.59
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 182.7,
                  "macros": {
                    "kcal": 30.43,
                    "protein_g": 2.29,
                    "carbs_g": 6.1,
                    "fat_g": 0.36
                  },
                  "nutrition_basis_grams": 179.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 179.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 30.43,
                "protein_g": 2.29,
                "carbs_g": 6.1,
                "fat_g": 0.36
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 626.23,
          "protein_g": 77.14,
          "carbs_g": 9.23,
          "fat_g": 32.02
        },
        "delta_vs_target": {
          "kcal": -2.77,
          "protein_g": 0.09,
          "carbs_g": 0.06,
          "fat_g": 1.33
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L146",
        "name": "Lombo suíno estilo stroganoff leve + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M17",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 79.5,
                  "macros": {
                    "kcal": 13.3,
                    "protein_g": 0.92,
                    "carbs_g": 1.58,
                    "fat_g": 0.15
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 35.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 317.2,
                  "macros": {
                    "kcal": 406.0,
                    "protein_g": 72.47,
                    "carbs_g": 0.0,
                    "fat_g": 12.99
                  },
                  "nutrition_basis_grams": 203.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 203.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 561.95,
                "protein_g": 74.0,
                "carbs_g": 1.86,
                "fat_g": 28.59
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 101.1,
                  "macros": {
                    "kcal": 20.7,
                    "protein_g": 1.44,
                    "carbs_g": 4.54,
                    "fat_g": 0.14
                  },
                  "nutrition_basis_grams": 90.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 90.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 55.56,
                "protein_g": 2.56,
                "carbs_g": 6.31,
                "fat_g": 2.98
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.36,
          "protein_g": 77.41,
          "carbs_g": 9.44,
          "fat_g": 31.64
        },
        "delta_vs_target": {
          "kcal": -4.64,
          "protein_g": 0.36,
          "carbs_g": 0.27,
          "fat_g": 0.95
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L147",
        "name": "Lombo suíno estilo stroganoff leve + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M17",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 79.5,
                  "macros": {
                    "kcal": 13.3,
                    "protein_g": 0.92,
                    "carbs_g": 1.58,
                    "fat_g": 0.15
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 35.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 312.5,
                  "macros": {
                    "kcal": 400.0,
                    "protein_g": 71.4,
                    "carbs_g": 0.0,
                    "fat_g": 12.8
                  },
                  "nutrition_basis_grams": 200.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 200.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 564.95,
                "protein_g": 72.93,
                "carbs_g": 1.86,
                "fat_g": 29.4
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 539.3,
                  "macros": {
                    "kcal": 25.67,
                    "protein_g": 1.83,
                    "carbs_g": 6.01,
                    "fat_g": 0.21
                  },
                  "nutrition_basis_grams": 151.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 151.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 52.55,
                "protein_g": 3.74,
                "carbs_g": 6.16,
                "fat_g": 2.31
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.35,
          "protein_g": 77.52,
          "carbs_g": 9.29,
          "fat_g": 31.78
        },
        "delta_vs_target": {
          "kcal": -4.65,
          "protein_g": 0.47,
          "carbs_g": 0.12,
          "fat_g": 1.09
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L148",
        "name": "Lombo suíno estilo stroganoff leve + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M17",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 79.5,
                  "macros": {
                    "kcal": 13.3,
                    "protein_g": 0.92,
                    "carbs_g": 1.58,
                    "fat_g": 0.15
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 35.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 320.3,
                  "macros": {
                    "kcal": 410.0,
                    "protein_g": 73.19,
                    "carbs_g": 0.0,
                    "fat_g": 13.12
                  },
                  "nutrition_basis_grams": 205.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 205.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 162.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 592.95,
                "protein_g": 74.72,
                "carbs_g": 1.86,
                "fat_g": 31.72
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 546.4,
                  "macros": {
                    "kcal": 26.01,
                    "protein_g": 1.85,
                    "carbs_g": 6.09,
                    "fat_g": 0.21
                  },
                  "nutrition_basis_grams": 153.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 153.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 26.01,
                "protein_g": 1.85,
                "carbs_g": 6.09,
                "fat_g": 0.21
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 625.81,
          "protein_g": 77.42,
          "carbs_g": 9.22,
          "fat_g": 32.0
        },
        "delta_vs_target": {
          "kcal": -3.19,
          "protein_g": 0.37,
          "carbs_g": 0.05,
          "fat_g": 1.31
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L149",
        "name": "Lombo suíno estilo stroganoff leve + Vagem com limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M17",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 79.5,
                  "macros": {
                    "kcal": 13.3,
                    "protein_g": 0.92,
                    "carbs_g": 1.58,
                    "fat_g": 0.15
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 35.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 310.9,
                  "macros": {
                    "kcal": 398.0,
                    "protein_g": 71.04,
                    "carbs_g": 0.0,
                    "fat_g": 12.74
                  },
                  "nutrition_basis_grams": 199.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 199.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 144.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 16.0
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 562.95,
                "protein_g": 72.57,
                "carbs_g": 1.86,
                "fat_g": 29.34
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 134.8,
                  "macros": {
                    "kcal": 27.6,
                    "protein_g": 1.92,
                    "carbs_g": 6.05,
                    "fat_g": 0.18
                  },
                  "nutrition_basis_grams": 120.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 120.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 54.48,
                "protein_g": 3.83,
                "carbs_g": 6.2,
                "fat_g": 2.28
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 624.28,
          "protein_g": 77.25,
          "carbs_g": 9.33,
          "fat_g": 31.69
        },
        "delta_vs_target": {
          "kcal": -4.72,
          "protein_g": 0.2,
          "carbs_g": 0.16,
          "fat_g": 1.0
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "L150",
        "name": "Lombo suíno estilo stroganoff leve + Brócolis com ervas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M17",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 79.5,
                  "macros": {
                    "kcal": 13.3,
                    "protein_g": 0.92,
                    "carbs_g": 1.58,
                    "fat_g": 0.15
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 35.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 310.9,
                  "macros": {
                    "kcal": 398.0,
                    "protein_g": 71.04,
                    "carbs_g": 0.0,
                    "fat_g": 12.74
                  },
                  "nutrition_basis_grams": 199.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 199.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 162.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 580.95,
                "protein_g": 72.57,
                "carbs_g": 1.86,
                "fat_g": 31.34
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 138.0,
                  "macros": {
                    "kcal": 37.26,
                    "protein_g": 3.74,
                    "carbs_g": 6.13,
                    "fat_g": 0.75
                  },
                  "nutrition_basis_grams": 138.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 138.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 37.26,
                "protein_g": 3.74,
                "carbs_g": 6.13,
                "fat_g": 0.75
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          },
          {
            "recipe_id": "SUP-CREATINE-VITAFOR",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING032",
                  "ingredient_name": "Creatina monohidratada Vitafor",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 0.0,
                "protein_g": 0.0,
                "carbs_g": 0.0,
                "fat_g": 0.0
              }
            }
          }
        ],
        "total": {
          "kcal": 625.06,
          "protein_g": 77.16,
          "carbs_g": 9.26,
          "fat_g": 32.16
        },
        "delta_vs_target": {
          "kcal": -3.94,
          "protein_g": 0.11,
          "carbs_g": 0.09,
          "fat_g": 1.47
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      }
    ],
    "afternoon_snack_sweet": [
      {
        "id": "SD01",
        "name": "Iogurte proteico gelado instantâneo de morango",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 100.0,
                  "macros": {
                    "kcal": 51.0,
                    "protein_g": 4.1,
                    "carbs_g": 1.9,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 100.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.5,
                    "carbs_g": 3.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.1,
                "carbs_g": 7.0,
                "fat_g": 4.3
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.1,
          "carbs_g": 7.0,
          "fat_g": 4.3
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.01,
          "carbs_g": 0.03,
          "fat_g": 0.01
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD02",
        "name": "Frozen yogurt proteico de morango",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 100.0,
                  "macros": {
                    "kcal": 51.0,
                    "protein_g": 4.1,
                    "carbs_g": 1.9,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 100.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.5,
                    "carbs_g": 3.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.1,
                "carbs_g": 7.0,
                "fat_g": 4.3
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.1,
          "carbs_g": 7.0,
          "fat_g": 4.3
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.01,
          "carbs_g": 0.03,
          "fat_g": 0.01
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD03",
        "name": "Sundae proteico de iogurte e morango",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 100.0,
                  "macros": {
                    "kcal": 51.0,
                    "protein_g": 4.1,
                    "carbs_g": 1.9,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 100.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.5,
                    "carbs_g": 3.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.1,
                "carbs_g": 7.0,
                "fat_g": 4.3
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.1,
          "carbs_g": 7.0,
          "fat_g": 4.3
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.01,
          "carbs_g": 0.03,
          "fat_g": 0.01
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD04",
        "name": "Picolé proteico de morango e iogurte",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 100.0,
                  "macros": {
                    "kcal": 51.0,
                    "protein_g": 4.1,
                    "carbs_g": 1.9,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 100.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.5,
                    "carbs_g": 3.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.1,
                "carbs_g": 7.0,
                "fat_g": 4.3
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.1,
          "carbs_g": 7.0,
          "fat_g": 4.3
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.01,
          "carbs_g": 0.03,
          "fat_g": 0.01
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD05",
        "name": "Parfait proteico de morango",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 98.0,
                  "macros": {
                    "kcal": 50.0,
                    "protein_g": 4.0,
                    "carbs_g": 1.9,
                    "fat_g": 2.9
                  },
                  "nutrition_basis_grams": 98.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.5,
                    "carbs_g": 3.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 128.0,
                "protein_g": 16.0,
                "carbs_g": 7.0,
                "fat_g": 4.2
              }
            }
          }
        ],
        "total": {
          "kcal": 128.0,
          "protein_g": 16.0,
          "carbs_g": 7.0,
          "fat_g": 4.2
        },
        "delta_vs_target": {
          "kcal": -1.0,
          "protein_g": -0.09,
          "carbs_g": 0.03,
          "fat_g": -0.09
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD06",
        "name": "Smoothie proteico de morango e banana",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 84.0,
                  "macros": {
                    "kcal": 43.0,
                    "protein_g": 3.4,
                    "carbs_g": 1.6,
                    "fat_g": 2.5
                  },
                  "nutrition_basis_grams": 84.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 16.0,
                  "macros": {
                    "kcal": 64.0,
                    "protein_g": 12.3,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 16.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 42.0,
                  "macros": {
                    "kcal": 13.0,
                    "protein_g": 0.3,
                    "carbs_g": 2.7,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 42.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING015",
                  "ingredient_name": "Banana prata crua",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.0,
                    "carbs_g": 1.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 1.0,
                  "macros": {
                    "kcal": 6.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.3,
                    "fat_g": 0.5
                  },
                  "nutrition_basis_grams": 1.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 1.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 130.0,
                "protein_g": 16.2,
                "carbs_g": 6.8,
                "fat_g": 4.3
              }
            }
          }
        ],
        "total": {
          "kcal": 130.0,
          "protein_g": 16.2,
          "carbs_g": 6.8,
          "fat_g": 4.3
        },
        "delta_vs_target": {
          "kcal": 1.0,
          "protein_g": 0.11,
          "carbs_g": -0.17,
          "fat_g": 0.01
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD07",
        "name": "Creme proteico aerado de morango",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 100.0,
                  "macros": {
                    "kcal": 51.0,
                    "protein_g": 4.1,
                    "carbs_g": 1.9,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 100.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.5,
                    "carbs_g": 3.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.1,
                "carbs_g": 7.0,
                "fat_g": 4.3
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.1,
          "carbs_g": 7.0,
          "fat_g": 4.3
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.01,
          "carbs_g": 0.03,
          "fat_g": 0.01
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD08",
        "name": "Iogurte proteico com morango macerado",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 100.0,
                  "macros": {
                    "kcal": 51.0,
                    "protein_g": 4.1,
                    "carbs_g": 1.9,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 100.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.5,
                    "carbs_g": 3.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.1,
                "carbs_g": 7.0,
                "fat_g": 4.3
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.1,
          "carbs_g": 7.0,
          "fat_g": 4.3
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.01,
          "carbs_g": 0.03,
          "fat_g": 0.01
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD09",
        "name": "Frozen proteico marmorizado de morango",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 100.0,
                  "macros": {
                    "kcal": 51.0,
                    "protein_g": 4.1,
                    "carbs_g": 1.9,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 100.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.5,
                    "carbs_g": 3.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.1,
                "carbs_g": 7.0,
                "fat_g": 4.3
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.1,
          "carbs_g": 7.0,
          "fat_g": 4.3
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.01,
          "carbs_g": 0.03,
          "fat_g": 0.01
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD10",
        "name": "Pote gelado de morango com crocante de amêndoa",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 98.0,
                  "macros": {
                    "kcal": 50.0,
                    "protein_g": 4.0,
                    "carbs_g": 1.9,
                    "fat_g": 2.9
                  },
                  "nutrition_basis_grams": 98.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.5,
                    "carbs_g": 3.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 128.0,
                "protein_g": 16.0,
                "carbs_g": 7.0,
                "fat_g": 4.2
              }
            }
          }
        ],
        "total": {
          "kcal": 128.0,
          "protein_g": 16.0,
          "carbs_g": 7.0,
          "fat_g": 4.2
        },
        "delta_vs_target": {
          "kcal": -1.0,
          "protein_g": -0.09,
          "carbs_g": 0.03,
          "fat_g": -0.09
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD11",
        "name": "Iogurte proteico tipo sorbet de morango",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 100.0,
                  "macros": {
                    "kcal": 51.0,
                    "protein_g": 4.1,
                    "carbs_g": 1.9,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 100.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.5,
                    "carbs_g": 3.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.1,
                "carbs_g": 7.0,
                "fat_g": 4.3
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.1,
          "carbs_g": 7.0,
          "fat_g": 4.3
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.01,
          "carbs_g": 0.03,
          "fat_g": 0.01
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD12",
        "name": "Mousse rápida de iogurte, whey e morango",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 100.0,
                  "macros": {
                    "kcal": 51.0,
                    "protein_g": 4.1,
                    "carbs_g": 1.9,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 100.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.5,
                    "carbs_g": 3.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.1,
                "carbs_g": 7.0,
                "fat_g": 4.3
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.1,
          "carbs_g": 7.0,
          "fat_g": 4.3
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.01,
          "carbs_g": 0.03,
          "fat_g": 0.01
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD13",
        "name": "Creme gelado de morango com canela",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD13",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 100.0,
                  "macros": {
                    "kcal": 51.0,
                    "protein_g": 4.1,
                    "carbs_g": 1.9,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 100.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.5,
                    "carbs_g": 3.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.1,
                "carbs_g": 7.0,
                "fat_g": 4.3
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.1,
          "carbs_g": 7.0,
          "fat_g": 4.3
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.01,
          "carbs_g": 0.03,
          "fat_g": 0.01
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD14",
        "name": "Picolé marmorizado de morango",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD14",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 100.0,
                  "macros": {
                    "kcal": 51.0,
                    "protein_g": 4.1,
                    "carbs_g": 1.9,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 100.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.5,
                    "carbs_g": 3.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.1,
                "carbs_g": 7.0,
                "fat_g": 4.3
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.1,
          "carbs_g": 7.0,
          "fat_g": 4.3
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.01,
          "carbs_g": 0.03,
          "fat_g": 0.01
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD15",
        "name": "Parfait de morango amassado e creme proteico",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD15",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 100.0,
                  "macros": {
                    "kcal": 51.0,
                    "protein_g": 4.1,
                    "carbs_g": 1.9,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 100.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.5,
                    "carbs_g": 3.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.1,
                "carbs_g": 7.0,
                "fat_g": 4.3
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.1,
          "carbs_g": 7.0,
          "fat_g": 4.3
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.01,
          "carbs_g": 0.03,
          "fat_g": 0.01
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD16",
        "name": "Smoothie espesso de morango",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD16",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 98.0,
                  "macros": {
                    "kcal": 50.0,
                    "protein_g": 4.0,
                    "carbs_g": 1.9,
                    "fat_g": 2.9
                  },
                  "nutrition_basis_grams": 98.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.5,
                    "carbs_g": 3.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 128.0,
                "protein_g": 16.0,
                "carbs_g": 7.0,
                "fat_g": 4.2
              }
            }
          }
        ],
        "total": {
          "kcal": 128.0,
          "protein_g": 16.0,
          "carbs_g": 7.0,
          "fat_g": 4.2
        },
        "delta_vs_target": {
          "kcal": -1.0,
          "protein_g": -0.09,
          "carbs_g": 0.03,
          "fat_g": -0.09
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD17",
        "name": "Frozen yogurt proteico com morango em pedaços",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD17",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 100.0,
                  "macros": {
                    "kcal": 51.0,
                    "protein_g": 4.1,
                    "carbs_g": 1.9,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 100.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.5,
                    "carbs_g": 3.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.1,
                "carbs_g": 7.0,
                "fat_g": 4.3
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.1,
          "carbs_g": 7.0,
          "fat_g": 4.3
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.01,
          "carbs_g": 0.03,
          "fat_g": 0.01
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD18",
        "name": "Copinho gelado de iogurte e morango",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD18",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 100.0,
                  "macros": {
                    "kcal": 51.0,
                    "protein_g": 4.1,
                    "carbs_g": 1.9,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 100.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.5,
                    "carbs_g": 3.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.1,
                "carbs_g": 7.0,
                "fat_g": 4.3
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.1,
          "carbs_g": 7.0,
          "fat_g": 4.3
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.01,
          "carbs_g": 0.03,
          "fat_g": 0.01
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD19",
        "name": "Bowl proteico de morango e mamão",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD19",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 100.0,
                  "macros": {
                    "kcal": 51.0,
                    "protein_g": 4.1,
                    "carbs_g": 1.9,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 100.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 52.0,
                  "macros": {
                    "kcal": 16.0,
                    "protein_g": 0.4,
                    "carbs_g": 3.4,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 52.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING014",
                  "ingredient_name": "Mamão papaia cru",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.5,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.0,
                "carbs_g": 7.0,
                "fat_g": 4.3
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.0,
          "carbs_g": 7.0,
          "fat_g": 4.3
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.09,
          "carbs_g": 0.03,
          "fat_g": 0.01
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD20",
        "name": "Creme proteico de morango com mamão em cubos",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD20",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 100.0,
                  "macros": {
                    "kcal": 51.0,
                    "protein_g": 4.1,
                    "carbs_g": 1.9,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 100.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 54.0,
                  "macros": {
                    "kcal": 16.0,
                    "protein_g": 0.4,
                    "carbs_g": 3.5,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 54.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING014",
                  "ingredient_name": "Mamão papaia cru",
                  "grams": 3.0,
                  "macros": {
                    "kcal": 1.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.3,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 3.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 128.0,
                "protein_g": 16.0,
                "carbs_g": 6.9,
                "fat_g": 4.3
              }
            }
          }
        ],
        "total": {
          "kcal": 128.0,
          "protein_g": 16.0,
          "carbs_g": 6.9,
          "fat_g": 4.3
        },
        "delta_vs_target": {
          "kcal": -1.0,
          "protein_g": -0.09,
          "carbs_g": -0.07,
          "fat_g": 0.01
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD21",
        "name": "Frozen proteico de morango com toque de banana",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD21",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 100.0,
                  "macros": {
                    "kcal": 51.0,
                    "protein_g": 4.1,
                    "carbs_g": 1.9,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 100.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 57.0,
                  "macros": {
                    "kcal": 17.0,
                    "protein_g": 0.5,
                    "carbs_g": 3.7,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 57.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING015",
                  "ingredient_name": "Banana prata crua",
                  "grams": 1.0,
                  "macros": {
                    "kcal": 1.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.3,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 1.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.1,
                "carbs_g": 7.1,
                "fat_g": 4.3
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.1,
          "carbs_g": 7.1,
          "fat_g": 4.3
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.01,
          "carbs_g": 0.13,
          "fat_g": 0.01
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD22",
        "name": "Iogurte proteico batido com morango e amêndoa",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD22",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 98.0,
                  "macros": {
                    "kcal": 50.0,
                    "protein_g": 4.0,
                    "carbs_g": 1.9,
                    "fat_g": 2.9
                  },
                  "nutrition_basis_grams": 98.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.5,
                    "carbs_g": 3.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 128.0,
                "protein_g": 16.0,
                "carbs_g": 7.0,
                "fat_g": 4.2
              }
            }
          }
        ],
        "total": {
          "kcal": 128.0,
          "protein_g": 16.0,
          "carbs_g": 7.0,
          "fat_g": 4.2
        },
        "delta_vs_target": {
          "kcal": -1.0,
          "protein_g": -0.09,
          "carbs_g": 0.03,
          "fat_g": -0.09
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD23",
        "name": "Parfait gelado de morango com amêndoa",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD23",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 98.0,
                  "macros": {
                    "kcal": 50.0,
                    "protein_g": 4.0,
                    "carbs_g": 1.9,
                    "fat_g": 2.9
                  },
                  "nutrition_basis_grams": 98.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.5,
                    "carbs_g": 3.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 128.0,
                "protein_g": 16.0,
                "carbs_g": 7.0,
                "fat_g": 4.2
              }
            }
          }
        ],
        "total": {
          "kcal": 128.0,
          "protein_g": 16.0,
          "carbs_g": 7.0,
          "fat_g": 4.2
        },
        "delta_vs_target": {
          "kcal": -1.0,
          "protein_g": -0.09,
          "carbs_g": 0.03,
          "fat_g": -0.09
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD24",
        "name": "Picolé proteico de morango com swirl",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD24",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 100.0,
                  "macros": {
                    "kcal": 51.0,
                    "protein_g": 4.1,
                    "carbs_g": 1.9,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 100.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.5,
                    "carbs_g": 3.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.1,
                "carbs_g": 7.0,
                "fat_g": 4.3
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.1,
          "carbs_g": 7.0,
          "fat_g": 4.3
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.01,
          "carbs_g": 0.03,
          "fat_g": 0.01
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD25",
        "name": "Frozen proteico de morango em textura soft-serve",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SD25",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 100.0,
                  "macros": {
                    "kcal": 51.0,
                    "protein_g": 4.1,
                    "carbs_g": 1.9,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 100.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 60.0,
                    "protein_g": 11.5,
                    "carbs_g": 1.2,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.5,
                    "carbs_g": 3.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.1,
                "carbs_g": 7.0,
                "fat_g": 4.3
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.1,
          "carbs_g": 7.0,
          "fat_g": 4.3
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.01,
          "carbs_g": 0.03,
          "fat_g": 0.01
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SD026",
        "name": "Frozen yogurt proteico — morango e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 0.25,
                    "carbs_g": 1.96,
                    "fat_g": 0.12
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 22.95,
                    "protein_g": 1.84,
                    "carbs_g": 0.85,
                    "fat_g": 1.35
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.05,
                "carbs_g": 5.59,
                "fat_g": 5.02
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.05,
          "carbs_g": 5.59,
          "fat_g": 5.02
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.04,
          "carbs_g": -1.38,
          "fat_g": 0.73
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD027",
        "name": "Frozen yogurt proteico — morango e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 0.25,
                    "carbs_g": 1.96,
                    "fat_g": 0.12
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 22.95,
                    "protein_g": 1.84,
                    "carbs_g": 0.85,
                    "fat_g": 1.35
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.05,
                "carbs_g": 5.59,
                "fat_g": 5.02
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.05,
          "carbs_g": 5.59,
          "fat_g": 5.02
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.04,
          "carbs_g": -1.38,
          "fat_g": 0.73
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD028",
        "name": "Frozen yogurt proteico — banana e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING015",
                  "ingredient_name": "Banana prata crua",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 16.05,
                    "protein_g": 0.17,
                    "carbs_g": 3.88,
                    "fat_g": 0.04
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 33.15,
                    "protein_g": 2.67,
                    "carbs_g": 1.23,
                    "fat_g": 1.95
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 2.1,
                  "macros": {
                    "kcal": 11.62,
                    "protein_g": 0.37,
                    "carbs_g": 0.59,
                    "fat_g": 0.95
                  },
                  "nutrition_basis_grams": 2.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 2.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 128.82,
                "protein_g": 16.24,
                "carbs_g": 7.0,
                "fat_g": 4.13
              }
            }
          }
        ],
        "total": {
          "kcal": 128.82,
          "protein_g": 16.24,
          "carbs_g": 7.0,
          "fat_g": 4.13
        },
        "delta_vs_target": {
          "kcal": -0.18,
          "protein_g": 0.15,
          "carbs_g": 0.03,
          "fat_g": -0.16
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD029",
        "name": "Frozen yogurt proteico — limão e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 127.34,
                "protein_g": 16.12,
                "carbs_g": 3.98,
                "fat_g": 5.47
              }
            }
          }
        ],
        "total": {
          "kcal": 127.34,
          "protein_g": 16.12,
          "carbs_g": 3.98,
          "fat_g": 5.47
        },
        "delta_vs_target": {
          "kcal": -1.66,
          "protein_g": 0.03,
          "carbs_g": -2.99,
          "fat_g": 1.18
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD030",
        "name": "Frozen yogurt proteico — laranja e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 127.34,
                "protein_g": 16.12,
                "carbs_g": 3.98,
                "fat_g": 5.47
              }
            }
          }
        ],
        "total": {
          "kcal": 127.34,
          "protein_g": 16.12,
          "carbs_g": 3.98,
          "fat_g": 5.47
        },
        "delta_vs_target": {
          "kcal": -1.66,
          "protein_g": 0.03,
          "carbs_g": -2.99,
          "fat_g": 1.18
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD031",
        "name": "Frozen yogurt proteico — mamão e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING014",
                  "ingredient_name": "Mamão papaia cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 12.9,
                    "protein_g": 0.15,
                    "carbs_g": 3.06,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 4.1,
                  "macros": {
                    "kcal": 23.24,
                    "protein_g": 0.74,
                    "carbs_g": 1.18,
                    "fat_g": 1.89
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 4.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 128.62,
                "protein_g": 15.89,
                "carbs_g": 6.45,
                "fat_g": 4.58
              }
            }
          }
        ],
        "total": {
          "kcal": 128.62,
          "protein_g": 15.89,
          "carbs_g": 6.45,
          "fat_g": 4.58
        },
        "delta_vs_target": {
          "kcal": -0.38,
          "protein_g": -0.2,
          "carbs_g": -0.52,
          "fat_g": 0.29
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD032",
        "name": "Frozen yogurt instantâneo — morango e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 0.25,
                    "carbs_g": 1.96,
                    "fat_g": 0.12
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 22.95,
                    "protein_g": 1.84,
                    "carbs_g": 0.85,
                    "fat_g": 1.35
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.05,
                "carbs_g": 5.59,
                "fat_g": 5.02
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.05,
          "carbs_g": 5.59,
          "fat_g": 5.02
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.04,
          "carbs_g": -1.38,
          "fat_g": 0.73
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD033",
        "name": "Frozen yogurt instantâneo — banana e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING015",
                  "ingredient_name": "Banana prata crua",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 16.05,
                    "protein_g": 0.17,
                    "carbs_g": 3.88,
                    "fat_g": 0.04
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 33.15,
                    "protein_g": 2.67,
                    "carbs_g": 1.23,
                    "fat_g": 1.95
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 2.1,
                  "macros": {
                    "kcal": 11.62,
                    "protein_g": 0.37,
                    "carbs_g": 0.59,
                    "fat_g": 0.95
                  },
                  "nutrition_basis_grams": 2.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 2.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 128.82,
                "protein_g": 16.24,
                "carbs_g": 7.0,
                "fat_g": 4.13
              }
            }
          }
        ],
        "total": {
          "kcal": 128.82,
          "protein_g": 16.24,
          "carbs_g": 7.0,
          "fat_g": 4.13
        },
        "delta_vs_target": {
          "kcal": -0.18,
          "protein_g": 0.15,
          "carbs_g": 0.03,
          "fat_g": -0.16
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD034",
        "name": "Frozen yogurt instantâneo — mamão e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING014",
                  "ingredient_name": "Mamão papaia cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 12.9,
                    "protein_g": 0.15,
                    "carbs_g": 3.06,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 4.1,
                  "macros": {
                    "kcal": 23.24,
                    "protein_g": 0.74,
                    "carbs_g": 1.18,
                    "fat_g": 1.89
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 4.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 128.62,
                "protein_g": 15.89,
                "carbs_g": 6.45,
                "fat_g": 4.58
              }
            }
          }
        ],
        "total": {
          "kcal": 128.62,
          "protein_g": 15.89,
          "carbs_g": 6.45,
          "fat_g": 4.58
        },
        "delta_vs_target": {
          "kcal": -0.38,
          "protein_g": -0.2,
          "carbs_g": -0.52,
          "fat_g": 0.29
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD035",
        "name": "Frozen yogurt instantâneo — limão e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 127.34,
                "protein_g": 16.12,
                "carbs_g": 3.98,
                "fat_g": 5.47
              }
            }
          }
        ],
        "total": {
          "kcal": 127.34,
          "protein_g": 16.12,
          "carbs_g": 3.98,
          "fat_g": 5.47
        },
        "delta_vs_target": {
          "kcal": -1.66,
          "protein_g": 0.03,
          "carbs_g": -2.99,
          "fat_g": 1.18
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD036",
        "name": "Frozen yogurt instantâneo — morango e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 0.25,
                    "carbs_g": 1.96,
                    "fat_g": 0.12
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 22.95,
                    "protein_g": 1.84,
                    "carbs_g": 0.85,
                    "fat_g": 1.35
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.05,
                "carbs_g": 5.59,
                "fat_g": 5.02
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.05,
          "carbs_g": 5.59,
          "fat_g": 5.02
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.04,
          "carbs_g": -1.38,
          "fat_g": 0.73
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD037",
        "name": "Parfait proteico — morango e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 0.25,
                    "carbs_g": 1.96,
                    "fat_g": 0.12
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 22.95,
                    "protein_g": 1.84,
                    "carbs_g": 0.85,
                    "fat_g": 1.35
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.05,
                "carbs_g": 5.59,
                "fat_g": 5.02
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.05,
          "carbs_g": 5.59,
          "fat_g": 5.02
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.04,
          "carbs_g": -1.38,
          "fat_g": 0.73
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD038",
        "name": "Parfait proteico — morango e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-13",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 0.25,
                    "carbs_g": 1.96,
                    "fat_g": 0.12
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 22.95,
                    "protein_g": 1.84,
                    "carbs_g": 0.85,
                    "fat_g": 1.35
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.05,
                "carbs_g": 5.59,
                "fat_g": 5.02
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.05,
          "carbs_g": 5.59,
          "fat_g": 5.02
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.04,
          "carbs_g": -1.38,
          "fat_g": 0.73
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD039",
        "name": "Parfait proteico — mamão e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-14",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING014",
                  "ingredient_name": "Mamão papaia cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 12.9,
                    "protein_g": 0.15,
                    "carbs_g": 3.06,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 4.1,
                  "macros": {
                    "kcal": 23.24,
                    "protein_g": 0.74,
                    "carbs_g": 1.18,
                    "fat_g": 1.89
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 4.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 128.62,
                "protein_g": 15.89,
                "carbs_g": 6.45,
                "fat_g": 4.58
              }
            }
          }
        ],
        "total": {
          "kcal": 128.62,
          "protein_g": 15.89,
          "carbs_g": 6.45,
          "fat_g": 4.58
        },
        "delta_vs_target": {
          "kcal": -0.38,
          "protein_g": -0.2,
          "carbs_g": -0.52,
          "fat_g": 0.29
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD040",
        "name": "Parfait proteico — banana e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-15",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING015",
                  "ingredient_name": "Banana prata crua",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 16.05,
                    "protein_g": 0.17,
                    "carbs_g": 3.88,
                    "fat_g": 0.04
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 33.15,
                    "protein_g": 2.67,
                    "carbs_g": 1.23,
                    "fat_g": 1.95
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 2.1,
                  "macros": {
                    "kcal": 11.62,
                    "protein_g": 0.37,
                    "carbs_g": 0.59,
                    "fat_g": 0.95
                  },
                  "nutrition_basis_grams": 2.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 2.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 128.82,
                "protein_g": 16.24,
                "carbs_g": 7.0,
                "fat_g": 4.13
              }
            }
          }
        ],
        "total": {
          "kcal": 128.82,
          "protein_g": 16.24,
          "carbs_g": 7.0,
          "fat_g": 4.13
        },
        "delta_vs_target": {
          "kcal": -0.18,
          "protein_g": 0.15,
          "carbs_g": 0.03,
          "fat_g": -0.16
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD041",
        "name": "Parfait proteico — laranja e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-16",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 127.34,
                "protein_g": 16.12,
                "carbs_g": 3.98,
                "fat_g": 5.47
              }
            }
          }
        ],
        "total": {
          "kcal": 127.34,
          "protein_g": 16.12,
          "carbs_g": 3.98,
          "fat_g": 5.47
        },
        "delta_vs_target": {
          "kcal": -1.66,
          "protein_g": 0.03,
          "carbs_g": -2.99,
          "fat_g": 1.18
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD042",
        "name": "Parfait proteico — limão e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-17",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 127.34,
                "protein_g": 16.12,
                "carbs_g": 3.98,
                "fat_g": 5.47
              }
            }
          }
        ],
        "total": {
          "kcal": 127.34,
          "protein_g": 16.12,
          "carbs_g": 3.98,
          "fat_g": 5.47
        },
        "delta_vs_target": {
          "kcal": -1.66,
          "protein_g": 0.03,
          "carbs_g": -2.99,
          "fat_g": 1.18
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD043",
        "name": "Sundae proteico — morango e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-18",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 0.25,
                    "carbs_g": 1.96,
                    "fat_g": 0.12
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 22.95,
                    "protein_g": 1.84,
                    "carbs_g": 0.85,
                    "fat_g": 1.35
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.05,
                "carbs_g": 5.59,
                "fat_g": 5.02
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.05,
          "carbs_g": 5.59,
          "fat_g": 5.02
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.04,
          "carbs_g": -1.38,
          "fat_g": 0.73
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD044",
        "name": "Sundae proteico — banana e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-19",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING015",
                  "ingredient_name": "Banana prata crua",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 16.05,
                    "protein_g": 0.17,
                    "carbs_g": 3.88,
                    "fat_g": 0.04
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 33.15,
                    "protein_g": 2.67,
                    "carbs_g": 1.23,
                    "fat_g": 1.95
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 2.1,
                  "macros": {
                    "kcal": 11.62,
                    "protein_g": 0.37,
                    "carbs_g": 0.59,
                    "fat_g": 0.95
                  },
                  "nutrition_basis_grams": 2.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 2.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 128.82,
                "protein_g": 16.24,
                "carbs_g": 7.0,
                "fat_g": 4.13
              }
            }
          }
        ],
        "total": {
          "kcal": 128.82,
          "protein_g": 16.24,
          "carbs_g": 7.0,
          "fat_g": 4.13
        },
        "delta_vs_target": {
          "kcal": -0.18,
          "protein_g": 0.15,
          "carbs_g": 0.03,
          "fat_g": -0.16
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD045",
        "name": "Sundae proteico — mamão e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-20",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING014",
                  "ingredient_name": "Mamão papaia cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 12.9,
                    "protein_g": 0.15,
                    "carbs_g": 3.06,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 4.1,
                  "macros": {
                    "kcal": 23.24,
                    "protein_g": 0.74,
                    "carbs_g": 1.18,
                    "fat_g": 1.89
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 4.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 128.62,
                "protein_g": 15.89,
                "carbs_g": 6.45,
                "fat_g": 4.58
              }
            }
          }
        ],
        "total": {
          "kcal": 128.62,
          "protein_g": 15.89,
          "carbs_g": 6.45,
          "fat_g": 4.58
        },
        "delta_vs_target": {
          "kcal": -0.38,
          "protein_g": -0.2,
          "carbs_g": -0.52,
          "fat_g": 0.29
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD046",
        "name": "Sundae proteico — café e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-21",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 127.34,
                "protein_g": 16.12,
                "carbs_g": 3.98,
                "fat_g": 5.47
              }
            }
          }
        ],
        "total": {
          "kcal": 127.34,
          "protein_g": 16.12,
          "carbs_g": 3.98,
          "fat_g": 5.47
        },
        "delta_vs_target": {
          "kcal": -1.66,
          "protein_g": 0.03,
          "carbs_g": -2.99,
          "fat_g": 1.18
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD047",
        "name": "Sundae proteico — limão e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-22",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 127.34,
                "protein_g": 16.12,
                "carbs_g": 3.98,
                "fat_g": 5.47
              }
            }
          }
        ],
        "total": {
          "kcal": 127.34,
          "protein_g": 16.12,
          "carbs_g": 3.98,
          "fat_g": 5.47
        },
        "delta_vs_target": {
          "kcal": -1.66,
          "protein_g": 0.03,
          "carbs_g": -2.99,
          "fat_g": 1.18
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD048",
        "name": "Picolé proteico — morango e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-23",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 0.25,
                    "carbs_g": 1.96,
                    "fat_g": 0.12
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 22.95,
                    "protein_g": 1.84,
                    "carbs_g": 0.85,
                    "fat_g": 1.35
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.05,
                "carbs_g": 5.59,
                "fat_g": 5.02
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.05,
          "carbs_g": 5.59,
          "fat_g": 5.02
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.04,
          "carbs_g": -1.38,
          "fat_g": 0.73
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD049",
        "name": "Picolé proteico — banana e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-24",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING015",
                  "ingredient_name": "Banana prata crua",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 16.05,
                    "protein_g": 0.17,
                    "carbs_g": 3.88,
                    "fat_g": 0.04
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 33.15,
                    "protein_g": 2.67,
                    "carbs_g": 1.23,
                    "fat_g": 1.95
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 2.1,
                  "macros": {
                    "kcal": 11.62,
                    "protein_g": 0.37,
                    "carbs_g": 0.59,
                    "fat_g": 0.95
                  },
                  "nutrition_basis_grams": 2.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 2.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 128.82,
                "protein_g": 16.24,
                "carbs_g": 7.0,
                "fat_g": 4.13
              }
            }
          }
        ],
        "total": {
          "kcal": 128.82,
          "protein_g": 16.24,
          "carbs_g": 7.0,
          "fat_g": 4.13
        },
        "delta_vs_target": {
          "kcal": -0.18,
          "protein_g": 0.15,
          "carbs_g": 0.03,
          "fat_g": -0.16
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD050",
        "name": "Picolé proteico — mamão e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-25",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING014",
                  "ingredient_name": "Mamão papaia cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 12.9,
                    "protein_g": 0.15,
                    "carbs_g": 3.06,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 4.1,
                  "macros": {
                    "kcal": 23.24,
                    "protein_g": 0.74,
                    "carbs_g": 1.18,
                    "fat_g": 1.89
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 4.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 128.62,
                "protein_g": 15.89,
                "carbs_g": 6.45,
                "fat_g": 4.58
              }
            }
          }
        ],
        "total": {
          "kcal": 128.62,
          "protein_g": 15.89,
          "carbs_g": 6.45,
          "fat_g": 4.58
        },
        "delta_vs_target": {
          "kcal": -0.38,
          "protein_g": -0.2,
          "carbs_g": -0.52,
          "fat_g": 0.29
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD051",
        "name": "Picolé proteico — limão e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-26",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 127.34,
                "protein_g": 16.12,
                "carbs_g": 3.98,
                "fat_g": 5.47
              }
            }
          }
        ],
        "total": {
          "kcal": 127.34,
          "protein_g": 16.12,
          "carbs_g": 3.98,
          "fat_g": 5.47
        },
        "delta_vs_target": {
          "kcal": -1.66,
          "protein_g": 0.03,
          "carbs_g": -2.99,
          "fat_g": 1.18
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD052",
        "name": "Picolé proteico — laranja e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-27",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 127.34,
                "protein_g": 16.12,
                "carbs_g": 3.98,
                "fat_g": 5.47
              }
            }
          }
        ],
        "total": {
          "kcal": 127.34,
          "protein_g": 16.12,
          "carbs_g": 3.98,
          "fat_g": 5.47
        },
        "delta_vs_target": {
          "kcal": -1.66,
          "protein_g": 0.03,
          "carbs_g": -2.99,
          "fat_g": 1.18
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD053",
        "name": "Yogurt bark proteico — morango e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-28",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 0.25,
                    "carbs_g": 1.96,
                    "fat_g": 0.12
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 22.95,
                    "protein_g": 1.84,
                    "carbs_g": 0.85,
                    "fat_g": 1.35
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.05,
                "carbs_g": 5.59,
                "fat_g": 5.02
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.05,
          "carbs_g": 5.59,
          "fat_g": 5.02
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.04,
          "carbs_g": -1.38,
          "fat_g": 0.73
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD054",
        "name": "Yogurt bark proteico — morango e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-29",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 0.25,
                    "carbs_g": 1.96,
                    "fat_g": 0.12
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 22.95,
                    "protein_g": 1.84,
                    "carbs_g": 0.85,
                    "fat_g": 1.35
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.05,
                "carbs_g": 5.59,
                "fat_g": 5.02
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.05,
          "carbs_g": 5.59,
          "fat_g": 5.02
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.04,
          "carbs_g": -1.38,
          "fat_g": 0.73
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD055",
        "name": "Yogurt bark proteico — banana e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-30",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING015",
                  "ingredient_name": "Banana prata crua",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 16.05,
                    "protein_g": 0.17,
                    "carbs_g": 3.88,
                    "fat_g": 0.04
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 33.15,
                    "protein_g": 2.67,
                    "carbs_g": 1.23,
                    "fat_g": 1.95
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 2.1,
                  "macros": {
                    "kcal": 11.62,
                    "protein_g": 0.37,
                    "carbs_g": 0.59,
                    "fat_g": 0.95
                  },
                  "nutrition_basis_grams": 2.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 2.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 128.82,
                "protein_g": 16.24,
                "carbs_g": 7.0,
                "fat_g": 4.13
              }
            }
          }
        ],
        "total": {
          "kcal": 128.82,
          "protein_g": 16.24,
          "carbs_g": 7.0,
          "fat_g": 4.13
        },
        "delta_vs_target": {
          "kcal": -0.18,
          "protein_g": 0.15,
          "carbs_g": 0.03,
          "fat_g": -0.16
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD056",
        "name": "Yogurt bark proteico — limão e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-31",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 127.34,
                "protein_g": 16.12,
                "carbs_g": 3.98,
                "fat_g": 5.47
              }
            }
          }
        ],
        "total": {
          "kcal": 127.34,
          "protein_g": 16.12,
          "carbs_g": 3.98,
          "fat_g": 5.47
        },
        "delta_vs_target": {
          "kcal": -1.66,
          "protein_g": 0.03,
          "carbs_g": -2.99,
          "fat_g": 1.18
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD057",
        "name": "Bites congelados de iogurte — morango e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-32",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 0.25,
                    "carbs_g": 1.96,
                    "fat_g": 0.12
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 22.95,
                    "protein_g": 1.84,
                    "carbs_g": 0.85,
                    "fat_g": 1.35
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.05,
                "carbs_g": 5.59,
                "fat_g": 5.02
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.05,
          "carbs_g": 5.59,
          "fat_g": 5.02
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.04,
          "carbs_g": -1.38,
          "fat_g": 0.73
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD058",
        "name": "Bites congelados de iogurte — mamão e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-33",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING014",
                  "ingredient_name": "Mamão papaia cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 12.9,
                    "protein_g": 0.15,
                    "carbs_g": 3.06,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 4.1,
                  "macros": {
                    "kcal": 23.24,
                    "protein_g": 0.74,
                    "carbs_g": 1.18,
                    "fat_g": 1.89
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 4.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 128.62,
                "protein_g": 15.89,
                "carbs_g": 6.45,
                "fat_g": 4.58
              }
            }
          }
        ],
        "total": {
          "kcal": 128.62,
          "protein_g": 15.89,
          "carbs_g": 6.45,
          "fat_g": 4.58
        },
        "delta_vs_target": {
          "kcal": -0.38,
          "protein_g": -0.2,
          "carbs_g": -0.52,
          "fat_g": 0.29
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD059",
        "name": "Bites congelados de iogurte — banana e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-34",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING015",
                  "ingredient_name": "Banana prata crua",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 16.05,
                    "protein_g": 0.17,
                    "carbs_g": 3.88,
                    "fat_g": 0.04
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 33.15,
                    "protein_g": 2.67,
                    "carbs_g": 1.23,
                    "fat_g": 1.95
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 2.1,
                  "macros": {
                    "kcal": 11.62,
                    "protein_g": 0.37,
                    "carbs_g": 0.59,
                    "fat_g": 0.95
                  },
                  "nutrition_basis_grams": 2.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 2.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 128.82,
                "protein_g": 16.24,
                "carbs_g": 7.0,
                "fat_g": 4.13
              }
            }
          }
        ],
        "total": {
          "kcal": 128.82,
          "protein_g": 16.24,
          "carbs_g": 7.0,
          "fat_g": 4.13
        },
        "delta_vs_target": {
          "kcal": -0.18,
          "protein_g": 0.15,
          "carbs_g": 0.03,
          "fat_g": -0.16
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD060",
        "name": "Bites congelados de iogurte — morango e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-35",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 0.25,
                    "carbs_g": 1.96,
                    "fat_g": 0.12
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 22.95,
                    "protein_g": 1.84,
                    "carbs_g": 0.85,
                    "fat_g": 1.35
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.05,
                "carbs_g": 5.59,
                "fat_g": 5.02
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.05,
          "carbs_g": 5.59,
          "fat_g": 5.02
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.04,
          "carbs_g": -1.38,
          "fat_g": 0.73
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD061",
        "name": "Mousse rápida de iogurte e whey — morango e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-36",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 0.25,
                    "carbs_g": 1.96,
                    "fat_g": 0.12
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 22.95,
                    "protein_g": 1.84,
                    "carbs_g": 0.85,
                    "fat_g": 1.35
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.05,
                "carbs_g": 5.59,
                "fat_g": 5.02
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.05,
          "carbs_g": 5.59,
          "fat_g": 5.02
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.04,
          "carbs_g": -1.38,
          "fat_g": 0.73
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD062",
        "name": "Mousse rápida de iogurte e whey — mamão e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-37",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING014",
                  "ingredient_name": "Mamão papaia cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 12.9,
                    "protein_g": 0.15,
                    "carbs_g": 3.06,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 4.1,
                  "macros": {
                    "kcal": 23.24,
                    "protein_g": 0.74,
                    "carbs_g": 1.18,
                    "fat_g": 1.89
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 4.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 128.62,
                "protein_g": 15.89,
                "carbs_g": 6.45,
                "fat_g": 4.58
              }
            }
          }
        ],
        "total": {
          "kcal": 128.62,
          "protein_g": 15.89,
          "carbs_g": 6.45,
          "fat_g": 4.58
        },
        "delta_vs_target": {
          "kcal": -0.38,
          "protein_g": -0.2,
          "carbs_g": -0.52,
          "fat_g": 0.29
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD063",
        "name": "Mousse rápida de iogurte e whey — banana e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-38",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING015",
                  "ingredient_name": "Banana prata crua",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 16.05,
                    "protein_g": 0.17,
                    "carbs_g": 3.88,
                    "fat_g": 0.04
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 33.15,
                    "protein_g": 2.67,
                    "carbs_g": 1.23,
                    "fat_g": 1.95
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 2.1,
                  "macros": {
                    "kcal": 11.62,
                    "protein_g": 0.37,
                    "carbs_g": 0.59,
                    "fat_g": 0.95
                  },
                  "nutrition_basis_grams": 2.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 2.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 128.82,
                "protein_g": 16.24,
                "carbs_g": 7.0,
                "fat_g": 4.13
              }
            }
          }
        ],
        "total": {
          "kcal": 128.82,
          "protein_g": 16.24,
          "carbs_g": 7.0,
          "fat_g": 4.13
        },
        "delta_vs_target": {
          "kcal": -0.18,
          "protein_g": 0.15,
          "carbs_g": 0.03,
          "fat_g": -0.16
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD064",
        "name": "Mousse rápida de iogurte e whey — limão e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-39",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 127.34,
                "protein_g": 16.12,
                "carbs_g": 3.98,
                "fat_g": 5.47
              }
            }
          }
        ],
        "total": {
          "kcal": 127.34,
          "protein_g": 16.12,
          "carbs_g": 3.98,
          "fat_g": 5.47
        },
        "delta_vs_target": {
          "kcal": -1.66,
          "protein_g": 0.03,
          "carbs_g": -2.99,
          "fat_g": 1.18
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD065",
        "name": "Mousse rápida de iogurte e whey — café e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-40",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 127.34,
                "protein_g": 16.12,
                "carbs_g": 3.98,
                "fat_g": 5.47
              }
            }
          }
        ],
        "total": {
          "kcal": 127.34,
          "protein_g": 16.12,
          "carbs_g": 3.98,
          "fat_g": 5.47
        },
        "delta_vs_target": {
          "kcal": -1.66,
          "protein_g": 0.03,
          "carbs_g": -2.99,
          "fat_g": 1.18
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD066",
        "name": "Creme proteico gelado — morango e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-41",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 0.25,
                    "carbs_g": 1.96,
                    "fat_g": 0.12
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 22.95,
                    "protein_g": 1.84,
                    "carbs_g": 0.85,
                    "fat_g": 1.35
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.05,
                "carbs_g": 5.59,
                "fat_g": 5.02
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.05,
          "carbs_g": 5.59,
          "fat_g": 5.02
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.04,
          "carbs_g": -1.38,
          "fat_g": 0.73
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD067",
        "name": "Creme proteico gelado — morango e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-42",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 0.25,
                    "carbs_g": 1.96,
                    "fat_g": 0.12
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 22.95,
                    "protein_g": 1.84,
                    "carbs_g": 0.85,
                    "fat_g": 1.35
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.05,
                "carbs_g": 5.59,
                "fat_g": 5.02
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.05,
          "carbs_g": 5.59,
          "fat_g": 5.02
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.04,
          "carbs_g": -1.38,
          "fat_g": 0.73
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD068",
        "name": "Creme proteico gelado — mamão e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-43",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING014",
                  "ingredient_name": "Mamão papaia cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 12.9,
                    "protein_g": 0.15,
                    "carbs_g": 3.06,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 4.1,
                  "macros": {
                    "kcal": 23.24,
                    "protein_g": 0.74,
                    "carbs_g": 1.18,
                    "fat_g": 1.89
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 4.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 128.62,
                "protein_g": 15.89,
                "carbs_g": 6.45,
                "fat_g": 4.58
              }
            }
          }
        ],
        "total": {
          "kcal": 128.62,
          "protein_g": 15.89,
          "carbs_g": 6.45,
          "fat_g": 4.58
        },
        "delta_vs_target": {
          "kcal": -0.38,
          "protein_g": -0.2,
          "carbs_g": -0.52,
          "fat_g": 0.29
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD069",
        "name": "Creme proteico gelado — limão e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-44",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 127.34,
                "protein_g": 16.12,
                "carbs_g": 3.98,
                "fat_g": 5.47
              }
            }
          }
        ],
        "total": {
          "kcal": 127.34,
          "protein_g": 16.12,
          "carbs_g": 3.98,
          "fat_g": 5.47
        },
        "delta_vs_target": {
          "kcal": -1.66,
          "protein_g": 0.03,
          "carbs_g": -2.99,
          "fat_g": 1.18
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD070",
        "name": "Creme proteico gelado — café e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-45",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 127.34,
                "protein_g": 16.12,
                "carbs_g": 3.98,
                "fat_g": 5.47
              }
            }
          }
        ],
        "total": {
          "kcal": 127.34,
          "protein_g": 16.12,
          "carbs_g": 3.98,
          "fat_g": 5.47
        },
        "delta_vs_target": {
          "kcal": -1.66,
          "protein_g": 0.03,
          "carbs_g": -2.99,
          "fat_g": 1.18
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD071",
        "name": "Smoothie proteico espesso — morango e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-46",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 0.25,
                    "carbs_g": 1.96,
                    "fat_g": 0.12
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 22.95,
                    "protein_g": 1.84,
                    "carbs_g": 0.85,
                    "fat_g": 1.35
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.05,
                "carbs_g": 5.59,
                "fat_g": 5.02
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.05,
          "carbs_g": 5.59,
          "fat_g": 5.02
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.04,
          "carbs_g": -1.38,
          "fat_g": 0.73
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD072",
        "name": "Smoothie proteico espesso — banana e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-47",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING015",
                  "ingredient_name": "Banana prata crua",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 16.05,
                    "protein_g": 0.17,
                    "carbs_g": 3.88,
                    "fat_g": 0.04
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 33.15,
                    "protein_g": 2.67,
                    "carbs_g": 1.23,
                    "fat_g": 1.95
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 2.1,
                  "macros": {
                    "kcal": 11.62,
                    "protein_g": 0.37,
                    "carbs_g": 0.59,
                    "fat_g": 0.95
                  },
                  "nutrition_basis_grams": 2.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 2.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 128.82,
                "protein_g": 16.24,
                "carbs_g": 7.0,
                "fat_g": 4.13
              }
            }
          }
        ],
        "total": {
          "kcal": 128.82,
          "protein_g": 16.24,
          "carbs_g": 7.0,
          "fat_g": 4.13
        },
        "delta_vs_target": {
          "kcal": -0.18,
          "protein_g": 0.15,
          "carbs_g": 0.03,
          "fat_g": -0.16
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD073",
        "name": "Smoothie proteico espesso — mamão e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-48",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING014",
                  "ingredient_name": "Mamão papaia cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 12.9,
                    "protein_g": 0.15,
                    "carbs_g": 3.06,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 4.1,
                  "macros": {
                    "kcal": 23.24,
                    "protein_g": 0.74,
                    "carbs_g": 1.18,
                    "fat_g": 1.89
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 4.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 128.62,
                "protein_g": 15.89,
                "carbs_g": 6.45,
                "fat_g": 4.58
              }
            }
          }
        ],
        "total": {
          "kcal": 128.62,
          "protein_g": 15.89,
          "carbs_g": 6.45,
          "fat_g": 4.58
        },
        "delta_vs_target": {
          "kcal": -0.38,
          "protein_g": -0.2,
          "carbs_g": -0.52,
          "fat_g": 0.29
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD074",
        "name": "Smoothie proteico espesso — limão e baunilha",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-49",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 48.0,
                  "macros": {
                    "kcal": 24.48,
                    "protein_g": 1.97,
                    "carbs_g": 0.91,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 48.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 127.34,
                "protein_g": 16.12,
                "carbs_g": 3.98,
                "fat_g": 5.47
              }
            }
          }
        ],
        "total": {
          "kcal": 127.34,
          "protein_g": 16.12,
          "carbs_g": 3.98,
          "fat_g": 5.47
        },
        "delta_vs_target": {
          "kcal": -1.66,
          "protein_g": 0.03,
          "carbs_g": -2.99,
          "fat_g": 1.18
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      },
      {
        "id": "SD075",
        "name": "Smoothie proteico espesso — morango e canela",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SD-50",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING013",
                  "ingredient_name": "Morango cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 0.25,
                    "carbs_g": 1.96,
                    "fat_g": 0.12
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 22.95,
                    "protein_g": 1.84,
                    "carbs_g": 0.85,
                    "fat_g": 1.35
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING012",
                  "ingredient_name": "Whey Protein Zero Lactose Natural - Growth (modelo de rótulo)",
                  "grams": 17.0,
                  "macros": {
                    "kcal": 68.0,
                    "protein_g": 13.03,
                    "carbs_g": 1.3,
                    "fat_g": 1.19
                  },
                  "nutrition_basis_grams": 17.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.05,
                    "protein_g": 0.93,
                    "carbs_g": 1.48,
                    "fat_g": 2.36
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 129.0,
                "protein_g": 16.05,
                "carbs_g": 5.59,
                "fat_g": 5.02
              }
            }
          }
        ],
        "total": {
          "kcal": 129.0,
          "protein_g": 16.05,
          "carbs_g": 5.59,
          "fat_g": 5.02
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": -0.04,
          "carbs_g": -1.38,
          "fat_g": 0.73
        },
        "origin": "generated_v3",
        "pairing_basis": "explicit_curated_concept"
      }
    ],
    "afternoon_snack_savory": [
      {
        "id": "SS01",
        "name": "Strogonoff de carne com cogumelos e iogurte zero lactose - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 220.0,
                  "macros": {
                    "kcal": 350.0,
                    "protein_g": 44.1,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 165.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 165.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 350.0,
                "protein_g": 44.1,
                "carbs_g": 0.0,
                "fat_g": 18.0
              }
            }
          }
        ],
        "total": {
          "kcal": 350.0,
          "protein_g": 44.1,
          "carbs_g": 0.0,
          "fat_g": 18.0
        },
        "delta_vs_target": {
          "kcal": 0.2,
          "protein_g": 0.05,
          "carbs_g": 0.0,
          "fat_g": 0.02
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS02",
        "name": "Carne ao curry - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 220.0,
                  "macros": {
                    "kcal": 350.0,
                    "protein_g": 44.1,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 165.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 165.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 350.0,
                "protein_g": 44.1,
                "carbs_g": 0.0,
                "fat_g": 18.0
              }
            }
          }
        ],
        "total": {
          "kcal": 350.0,
          "protein_g": 44.1,
          "carbs_g": 0.0,
          "fat_g": 18.0
        },
        "delta_vs_target": {
          "kcal": 0.2,
          "protein_g": 0.05,
          "carbs_g": 0.0,
          "fat_g": 0.02
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS03",
        "name": "Ragù de carne e tomate - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 220.0,
                  "macros": {
                    "kcal": 350.0,
                    "protein_g": 44.1,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 165.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 165.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 350.0,
                "protein_g": 44.1,
                "carbs_g": 0.0,
                "fat_g": 18.0
              }
            }
          }
        ],
        "total": {
          "kcal": 350.0,
          "protein_g": 44.1,
          "carbs_g": 0.0,
          "fat_g": 18.0
        },
        "delta_vs_target": {
          "kcal": 0.2,
          "protein_g": 0.05,
          "carbs_g": 0.0,
          "fat_g": 0.02
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS04",
        "name": "Bolonhesa sem massa - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 220.0,
                  "macros": {
                    "kcal": 350.0,
                    "protein_g": 44.1,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 165.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 165.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 350.0,
                "protein_g": 44.1,
                "carbs_g": 0.0,
                "fat_g": 18.0
              }
            }
          }
        ],
        "total": {
          "kcal": 350.0,
          "protein_g": 44.1,
          "carbs_g": 0.0,
          "fat_g": 18.0
        },
        "delta_vs_target": {
          "kcal": 0.2,
          "protein_g": 0.05,
          "carbs_g": 0.0,
          "fat_g": 0.02
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS05",
        "name": "Kofta bovina com molho de iogurte e hortelã - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 162.7,
                  "macros": {
                    "kcal": 257.0,
                    "protein_g": 43.9,
                    "carbs_g": 0.0,
                    "fat_g": 9.2
                  },
                  "nutrition_basis_grams": 122.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 122.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "Ground/molded patinho: USDA FBG ground beef ≤15% fat yield (0.75) used instead of intact round-steak yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 8.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.3,
                    "fat_g": 0.4
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 1.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.1,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 1.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 9.0,
                  "macros": {
                    "kcal": 81.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 9.0
                  },
                  "nutrition_basis_grams": 9.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 346.0,
                "protein_g": 44.5,
                "carbs_g": 0.4,
                "fat_g": 18.6
              }
            }
          }
        ],
        "total": {
          "kcal": 346.0,
          "protein_g": 44.5,
          "carbs_g": 0.4,
          "fat_g": 18.6
        },
        "delta_vs_target": {
          "kcal": -3.8,
          "protein_g": 0.45,
          "carbs_g": 0.4,
          "fat_g": 0.62
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS06",
        "name": "Kofte marroquino ao tomate - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 189.2,
                  "macros": {
                    "kcal": 260.0,
                    "protein_g": 44.3,
                    "carbs_g": 0.0,
                    "fat_g": 9.2
                  },
                  "nutrition_basis_grams": 123.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 123.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.4,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 90.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 10.0
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 352.0,
                "protein_g": 44.4,
                "carbs_g": 0.4,
                "fat_g": 19.2
              }
            }
          }
        ],
        "total": {
          "kcal": 352.0,
          "protein_g": 44.4,
          "carbs_g": 0.4,
          "fat_g": 19.2
        },
        "delta_vs_target": {
          "kcal": 2.2,
          "protein_g": 0.35,
          "carbs_g": 0.4,
          "fat_g": 1.22
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS07",
        "name": "Hambúrguer kofta caseiro - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 164.0,
                  "macros": {
                    "kcal": 260.0,
                    "protein_g": 44.3,
                    "carbs_g": 0.0,
                    "fat_g": 9.2
                  },
                  "nutrition_basis_grams": 123.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 123.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "Ground/molded patinho: USDA FBG ground beef ≤15% fat yield (0.75) used instead of intact round-steak yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.4,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 90.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 10.0
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 352.0,
                "protein_g": 44.4,
                "carbs_g": 0.4,
                "fat_g": 19.2
              }
            }
          }
        ],
        "total": {
          "kcal": 352.0,
          "protein_g": 44.4,
          "carbs_g": 0.4,
          "fat_g": 19.2
        },
        "delta_vs_target": {
          "kcal": 2.2,
          "protein_g": 0.35,
          "carbs_g": 0.4,
          "fat_g": 1.22
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS08",
        "name": "Almôndegas ao strogonoff - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 220.0,
                  "macros": {
                    "kcal": 350.0,
                    "protein_g": 44.1,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 165.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 165.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 350.0,
                "protein_g": 44.1,
                "carbs_g": 0.0,
                "fat_g": 18.0
              }
            }
          }
        ],
        "total": {
          "kcal": 350.0,
          "protein_g": 44.1,
          "carbs_g": 0.0,
          "fat_g": 18.0
        },
        "delta_vs_target": {
          "kcal": 0.2,
          "protein_g": 0.05,
          "carbs_g": 0.0,
          "fat_g": 0.02
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS09",
        "name": "Carne de panela leve - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 220.0,
                  "macros": {
                    "kcal": 350.0,
                    "protein_g": 44.1,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 165.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 165.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 350.0,
                "protein_g": 44.1,
                "carbs_g": 0.0,
                "fat_g": 18.0
              }
            }
          }
        ],
        "total": {
          "kcal": 350.0,
          "protein_g": 44.1,
          "carbs_g": 0.0,
          "fat_g": 18.0
        },
        "delta_vs_target": {
          "kcal": 0.2,
          "protein_g": 0.05,
          "carbs_g": 0.0,
          "fat_g": 0.02
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS10",
        "name": "Carne com cebola estilo pot-roast - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 220.0,
                  "macros": {
                    "kcal": 350.0,
                    "protein_g": 44.1,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 165.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 165.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 350.0,
                "protein_g": 44.1,
                "carbs_g": 0.0,
                "fat_g": 18.0
              }
            }
          }
        ],
        "total": {
          "kcal": 350.0,
          "protein_g": 44.1,
          "carbs_g": 0.0,
          "fat_g": 18.0
        },
        "delta_vs_target": {
          "kcal": 0.2,
          "protein_g": 0.05,
          "carbs_g": 0.0,
          "fat_g": 0.02
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS11",
        "name": "Frango churrasco de limão e alho - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 182.2,
                  "macros": {
                    "kcal": 205.0,
                    "protein_g": 41.6,
                    "carbs_g": 0.0,
                    "fat_g": 4.2
                  },
                  "nutrition_basis_grams": 133.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 133.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 40.0,
                    "protein_g": 2.7,
                    "carbs_g": 0.4,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 353.0,
                "protein_g": 44.3,
                "carbs_g": 0.4,
                "fat_g": 19.2
              }
            }
          }
        ],
        "total": {
          "kcal": 353.0,
          "protein_g": 44.3,
          "carbs_g": 0.4,
          "fat_g": 19.2
        },
        "delta_vs_target": {
          "kcal": 3.2,
          "protein_g": 0.25,
          "carbs_g": 0.4,
          "fat_g": 1.22
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS12",
        "name": "Paillard de frango com limão e ervas - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 182.2,
                  "macros": {
                    "kcal": 205.0,
                    "protein_g": 41.6,
                    "carbs_g": 0.0,
                    "fat_g": 4.2
                  },
                  "nutrition_basis_grams": 133.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 133.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 40.0,
                    "protein_g": 2.7,
                    "carbs_g": 0.4,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 353.0,
                "protein_g": 44.3,
                "carbs_g": 0.4,
                "fat_g": 19.2
              }
            }
          }
        ],
        "total": {
          "kcal": 353.0,
          "protein_g": 44.3,
          "carbs_g": 0.4,
          "fat_g": 19.2
        },
        "delta_vs_target": {
          "kcal": 3.2,
          "protein_g": 0.25,
          "carbs_g": 0.4,
          "fat_g": 1.22
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS13",
        "name": "Frango ao limão e orégano - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS13",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 182.2,
                  "macros": {
                    "kcal": 205.0,
                    "protein_g": 41.6,
                    "carbs_g": 0.0,
                    "fat_g": 4.2
                  },
                  "nutrition_basis_grams": 133.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 133.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 40.0,
                    "protein_g": 2.7,
                    "carbs_g": 0.4,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 353.0,
                "protein_g": 44.3,
                "carbs_g": 0.4,
                "fat_g": 19.2
              }
            }
          }
        ],
        "total": {
          "kcal": 353.0,
          "protein_g": 44.3,
          "carbs_g": 0.4,
          "fat_g": 19.2
        },
        "delta_vs_target": {
          "kcal": 3.2,
          "protein_g": 0.25,
          "carbs_g": 0.4,
          "fat_g": 1.22
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS14",
        "name": "Frango tikka com iogurte zero lactose - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS14",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 182.2,
                  "macros": {
                    "kcal": 205.0,
                    "protein_g": 41.6,
                    "carbs_g": 0.0,
                    "fat_g": 4.2
                  },
                  "nutrition_basis_grams": 133.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 133.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 40.0,
                    "protein_g": 2.7,
                    "carbs_g": 0.4,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 353.0,
                "protein_g": 44.3,
                "carbs_g": 0.4,
                "fat_g": 19.2
              }
            }
          }
        ],
        "total": {
          "kcal": 353.0,
          "protein_g": 44.3,
          "carbs_g": 0.4,
          "fat_g": 19.2
        },
        "delta_vs_target": {
          "kcal": 3.2,
          "protein_g": 0.25,
          "carbs_g": 0.4,
          "fat_g": 1.22
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS15",
        "name": "Frango souvlaki - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS15",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 182.2,
                  "macros": {
                    "kcal": 205.0,
                    "protein_g": 41.6,
                    "carbs_g": 0.0,
                    "fat_g": 4.2
                  },
                  "nutrition_basis_grams": 133.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 133.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 40.0,
                    "protein_g": 2.7,
                    "carbs_g": 0.4,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 353.0,
                "protein_g": 44.3,
                "carbs_g": 0.4,
                "fat_g": 19.2
              }
            }
          }
        ],
        "total": {
          "kcal": 353.0,
          "protein_g": 44.3,
          "carbs_g": 0.4,
          "fat_g": 19.2
        },
        "delta_vs_target": {
          "kcal": 3.2,
          "protein_g": 0.25,
          "carbs_g": 0.4,
          "fat_g": 1.22
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS16",
        "name": "Frango gyros - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS16",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 182.2,
                  "macros": {
                    "kcal": 205.0,
                    "protein_g": 41.6,
                    "carbs_g": 0.0,
                    "fat_g": 4.2
                  },
                  "nutrition_basis_grams": 133.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 133.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 40.0,
                    "protein_g": 2.7,
                    "carbs_g": 0.4,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 353.0,
                "protein_g": 44.3,
                "carbs_g": 0.4,
                "fat_g": 19.2
              }
            }
          }
        ],
        "total": {
          "kcal": 353.0,
          "protein_g": 44.3,
          "carbs_g": 0.4,
          "fat_g": 19.2
        },
        "delta_vs_target": {
          "kcal": 3.2,
          "protein_g": 0.25,
          "carbs_g": 0.4,
          "fat_g": 1.22
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS17",
        "name": "Frango jerk - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS17",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 182.2,
                  "macros": {
                    "kcal": 205.0,
                    "protein_g": 41.6,
                    "carbs_g": 0.0,
                    "fat_g": 4.2
                  },
                  "nutrition_basis_grams": 133.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 133.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 40.0,
                    "protein_g": 2.7,
                    "carbs_g": 0.4,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 353.0,
                "protein_g": 44.3,
                "carbs_g": 0.4,
                "fat_g": 19.2
              }
            }
          }
        ],
        "total": {
          "kcal": 353.0,
          "protein_g": 44.3,
          "carbs_g": 0.4,
          "fat_g": 19.2
        },
        "delta_vs_target": {
          "kcal": 3.2,
          "protein_g": 0.25,
          "carbs_g": 0.4,
          "fat_g": 1.22
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS18",
        "name": "Frango ao curry - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS18",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 182.2,
                  "macros": {
                    "kcal": 205.0,
                    "protein_g": 41.6,
                    "carbs_g": 0.0,
                    "fat_g": 4.2
                  },
                  "nutrition_basis_grams": 133.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 133.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 40.0,
                    "protein_g": 2.7,
                    "carbs_g": 0.4,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 353.0,
                "protein_g": 44.3,
                "carbs_g": 0.4,
                "fat_g": 19.2
              }
            }
          }
        ],
        "total": {
          "kcal": 353.0,
          "protein_g": 44.3,
          "carbs_g": 0.4,
          "fat_g": 19.2
        },
        "delta_vs_target": {
          "kcal": 3.2,
          "protein_g": 0.25,
          "carbs_g": 0.4,
          "fat_g": 1.22
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS19",
        "name": "Tilápia ao curry de tomate - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS19",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 258.6,
                  "macros": {
                    "kcal": 203.0,
                    "protein_g": 41.8,
                    "carbs_g": 0.0,
                    "fat_g": 3.8
                  },
                  "nutrition_basis_grams": 181.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 181.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 11.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 2.5,
                    "carbs_g": 0.3,
                    "fat_g": 2.8
                  },
                  "nutrition_basis_grams": 11.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 347.0,
                "protein_g": 44.3,
                "carbs_g": 0.3,
                "fat_g": 18.6
              }
            }
          }
        ],
        "total": {
          "kcal": 347.0,
          "protein_g": 44.3,
          "carbs_g": 0.3,
          "fat_g": 18.6
        },
        "delta_vs_target": {
          "kcal": -2.8,
          "protein_g": 0.25,
          "carbs_g": 0.3,
          "fat_g": 0.62
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS20",
        "name": "Tilápia ao curry cremoso de iogurte - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS20",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 258.6,
                  "macros": {
                    "kcal": 203.0,
                    "protein_g": 41.8,
                    "carbs_g": 0.0,
                    "fat_g": 3.8
                  },
                  "nutrition_basis_grams": 181.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 181.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 11.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 2.5,
                    "carbs_g": 0.3,
                    "fat_g": 2.8
                  },
                  "nutrition_basis_grams": 11.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 347.0,
                "protein_g": 44.3,
                "carbs_g": 0.3,
                "fat_g": 18.6
              }
            }
          }
        ],
        "total": {
          "kcal": 347.0,
          "protein_g": 44.3,
          "carbs_g": 0.3,
          "fat_g": 18.6
        },
        "delta_vs_target": {
          "kcal": -2.8,
          "protein_g": 0.25,
          "carbs_g": 0.3,
          "fat_g": 0.62
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS21",
        "name": "Tilápia mappas adaptada - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS21",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 258.6,
                  "macros": {
                    "kcal": 203.0,
                    "protein_g": 41.8,
                    "carbs_g": 0.0,
                    "fat_g": 3.8
                  },
                  "nutrition_basis_grams": 181.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 181.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 11.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 2.5,
                    "carbs_g": 0.3,
                    "fat_g": 2.8
                  },
                  "nutrition_basis_grams": 11.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 347.0,
                "protein_g": 44.3,
                "carbs_g": 0.3,
                "fat_g": 18.6
              }
            }
          }
        ],
        "total": {
          "kcal": 347.0,
          "protein_g": 44.3,
          "carbs_g": 0.3,
          "fat_g": 18.6
        },
        "delta_vs_target": {
          "kcal": -2.8,
          "protein_g": 0.25,
          "carbs_g": 0.3,
          "fat_g": 0.62
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS22",
        "name": "Tilápia ao tomate em air fryer - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS22",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 258.6,
                  "macros": {
                    "kcal": 203.0,
                    "protein_g": 41.8,
                    "carbs_g": 0.0,
                    "fat_g": 3.8
                  },
                  "nutrition_basis_grams": 181.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 181.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 11.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 2.5,
                    "carbs_g": 0.3,
                    "fat_g": 2.8
                  },
                  "nutrition_basis_grams": 11.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 347.0,
                "protein_g": 44.3,
                "carbs_g": 0.3,
                "fat_g": 18.6
              }
            }
          }
        ],
        "total": {
          "kcal": 347.0,
          "protein_g": 44.3,
          "carbs_g": 0.3,
          "fat_g": 18.6
        },
        "delta_vs_target": {
          "kcal": -2.8,
          "protein_g": 0.25,
          "carbs_g": 0.3,
          "fat_g": 0.62
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS23",
        "name": "Tilápia gratinada com parmesão - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS23",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 258.6,
                  "macros": {
                    "kcal": 203.0,
                    "protein_g": 41.8,
                    "carbs_g": 0.0,
                    "fat_g": 3.8
                  },
                  "nutrition_basis_grams": 181.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 181.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 11.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 2.5,
                    "carbs_g": 0.3,
                    "fat_g": 2.8
                  },
                  "nutrition_basis_grams": 11.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 108.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 12.0
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 347.0,
                "protein_g": 44.3,
                "carbs_g": 0.3,
                "fat_g": 18.6
              }
            }
          }
        ],
        "total": {
          "kcal": 347.0,
          "protein_g": 44.3,
          "carbs_g": 0.3,
          "fat_g": 18.6
        },
        "delta_vs_target": {
          "kcal": -2.8,
          "protein_g": 0.25,
          "carbs_g": 0.3,
          "fat_g": 0.62
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS24",
        "name": "Lombo suíno ao tomate e ervas - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS24",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 181.2,
                  "macros": {
                    "kcal": 232.0,
                    "protein_g": 41.4,
                    "carbs_g": 0.0,
                    "fat_g": 7.4
                  },
                  "nutrition_basis_grams": 116.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 116.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 13.0,
                  "macros": {
                    "kcal": 43.0,
                    "protein_g": 2.9,
                    "carbs_g": 0.4,
                    "fat_g": 3.3
                  },
                  "nutrition_basis_grams": 13.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 72.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 8.0
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 347.0,
                "protein_g": 44.3,
                "carbs_g": 0.4,
                "fat_g": 18.7
              }
            }
          }
        ],
        "total": {
          "kcal": 347.0,
          "protein_g": 44.3,
          "carbs_g": 0.4,
          "fat_g": 18.7
        },
        "delta_vs_target": {
          "kcal": -2.8,
          "protein_g": 0.25,
          "carbs_g": 0.4,
          "fat_g": 0.72
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS25",
        "name": "Lombo suíno com limão, alho e alecrim - porção de lanche",
        "recipe_uses": [
          {
            "recipe_id": "LEG-SS25",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 181.2,
                  "macros": {
                    "kcal": 232.0,
                    "protein_g": 41.4,
                    "carbs_g": 0.0,
                    "fat_g": 7.4
                  },
                  "nutrition_basis_grams": 116.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 116.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 13.0,
                  "macros": {
                    "kcal": 43.0,
                    "protein_g": 2.9,
                    "carbs_g": 0.4,
                    "fat_g": 3.3
                  },
                  "nutrition_basis_grams": 13.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 72.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 8.0
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 347.0,
                "protein_g": 44.3,
                "carbs_g": 0.4,
                "fat_g": 18.7
              }
            }
          }
        ],
        "total": {
          "kcal": 347.0,
          "protein_g": 44.3,
          "carbs_g": 0.4,
          "fat_g": 18.7
        },
        "delta_vs_target": {
          "kcal": -2.8,
          "protein_g": 0.25,
          "carbs_g": 0.4,
          "fat_g": 0.72
        },
        "origin": "legacy_docx"
      },
      {
        "id": "SS026",
        "name": "Bife com chimichurri em tiras",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-BV01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 189.2,
                  "macros": {
                    "kcal": 259.53,
                    "protein_g": 44.28,
                    "carbs_g": 0.0,
                    "fat_g": 9.22
                  },
                  "nutrition_basis_grams": 123.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 123.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 90.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 10.0
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 349.53,
                "protein_g": 44.28,
                "carbs_g": 0.0,
                "fat_g": 19.22
              }
            }
          }
        ],
        "total": {
          "kcal": 349.53,
          "protein_g": 44.28,
          "carbs_g": 0.0,
          "fat_g": 19.22
        },
        "delta_vs_target": {
          "kcal": -0.27,
          "protein_g": 0.23,
          "carbs_g": 0.0,
          "fat_g": 1.24
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS027",
        "name": "Bife ao miso em tiras",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-BV02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 189.2,
                  "macros": {
                    "kcal": 259.53,
                    "protein_g": 44.28,
                    "carbs_g": 0.0,
                    "fat_g": 9.22
                  },
                  "nutrition_basis_grams": 123.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 123.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 90.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 10.0
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 349.53,
                "protein_g": 44.28,
                "carbs_g": 0.0,
                "fat_g": 19.22
              }
            }
          }
        ],
        "total": {
          "kcal": 349.53,
          "protein_g": 44.28,
          "carbs_g": 0.0,
          "fat_g": 19.22
        },
        "delta_vs_target": {
          "kcal": -0.27,
          "protein_g": 0.23,
          "carbs_g": 0.0,
          "fat_g": 1.24
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS028",
        "name": "Bife apimentado",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-BV03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 189.2,
                  "macros": {
                    "kcal": 259.53,
                    "protein_g": 44.28,
                    "carbs_g": 0.0,
                    "fat_g": 9.22
                  },
                  "nutrition_basis_grams": 123.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 123.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 90.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 10.0
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 349.53,
                "protein_g": 44.28,
                "carbs_g": 0.0,
                "fat_g": 19.22
              }
            }
          }
        ],
        "total": {
          "kcal": 349.53,
          "protein_g": 44.28,
          "carbs_g": 0.0,
          "fat_g": 19.22
        },
        "delta_vs_target": {
          "kcal": -0.27,
          "protein_g": 0.23,
          "carbs_g": 0.0,
          "fat_g": 1.24
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS029",
        "name": "Bife simples na chapa",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-BV04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 189.2,
                  "macros": {
                    "kcal": 259.53,
                    "protein_g": 44.28,
                    "carbs_g": 0.0,
                    "fat_g": 9.22
                  },
                  "nutrition_basis_grams": 123.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 123.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 90.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 10.0
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 349.53,
                "protein_g": 44.28,
                "carbs_g": 0.0,
                "fat_g": 19.22
              }
            }
          }
        ],
        "total": {
          "kcal": 349.53,
          "protein_g": 44.28,
          "carbs_g": 0.0,
          "fat_g": 19.22
        },
        "delta_vs_target": {
          "kcal": -0.27,
          "protein_g": 0.23,
          "carbs_g": 0.0,
          "fat_g": 1.24
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS030",
        "name": "Bife na air fryer",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-BV05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 189.2,
                  "macros": {
                    "kcal": 259.53,
                    "protein_g": 44.28,
                    "carbs_g": 0.0,
                    "fat_g": 9.22
                  },
                  "nutrition_basis_grams": 123.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 123.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 90.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 10.0
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 349.53,
                "protein_g": 44.28,
                "carbs_g": 0.0,
                "fat_g": 19.22
              }
            }
          }
        ],
        "total": {
          "kcal": 349.53,
          "protein_g": 44.28,
          "carbs_g": 0.0,
          "fat_g": 19.22
        },
        "delta_vs_target": {
          "kcal": -0.27,
          "protein_g": 0.23,
          "carbs_g": 0.0,
          "fat_g": 1.24
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS031",
        "name": "Hambúrguer bovino sem pão",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-BV06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 220.0,
                  "macros": {
                    "kcal": 349.8,
                    "protein_g": 44.05,
                    "carbs_g": 0.0,
                    "fat_g": 17.98
                  },
                  "nutrition_basis_grams": 165.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 165.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 349.8,
                "protein_g": 44.05,
                "carbs_g": 0.0,
                "fat_g": 17.98
              }
            }
          }
        ],
        "total": {
          "kcal": 349.8,
          "protein_g": 44.05,
          "carbs_g": 0.0,
          "fat_g": 17.98
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.0,
          "carbs_g": 0.0,
          "fat_g": 0.0
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS032",
        "name": "Kofta bovina no espeto",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-BV07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 220.0,
                  "macros": {
                    "kcal": 349.8,
                    "protein_g": 44.05,
                    "carbs_g": 0.0,
                    "fat_g": 17.98
                  },
                  "nutrition_basis_grams": 165.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 165.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 349.8,
                "protein_g": 44.05,
                "carbs_g": 0.0,
                "fat_g": 17.98
              }
            }
          }
        ],
        "total": {
          "kcal": 349.8,
          "protein_g": 44.05,
          "carbs_g": 0.0,
          "fat_g": 17.98
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.0,
          "carbs_g": 0.0,
          "fat_g": 0.0
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS033",
        "name": "Kofta bovina em mini-hambúrguer",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-BV08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 220.0,
                  "macros": {
                    "kcal": 349.8,
                    "protein_g": 44.05,
                    "carbs_g": 0.0,
                    "fat_g": 17.98
                  },
                  "nutrition_basis_grams": 165.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 165.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 349.8,
                "protein_g": 44.05,
                "carbs_g": 0.0,
                "fat_g": 17.98
              }
            }
          }
        ],
        "total": {
          "kcal": 349.8,
          "protein_g": 44.05,
          "carbs_g": 0.0,
          "fat_g": 17.98
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.0,
          "carbs_g": 0.0,
          "fat_g": 0.0
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS034",
        "name": "Kofte marroquino seco",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-BV09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 220.0,
                  "macros": {
                    "kcal": 349.8,
                    "protein_g": 44.05,
                    "carbs_g": 0.0,
                    "fat_g": 17.98
                  },
                  "nutrition_basis_grams": 165.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 165.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 349.8,
                "protein_g": 44.05,
                "carbs_g": 0.0,
                "fat_g": 17.98
              }
            }
          }
        ],
        "total": {
          "kcal": 349.8,
          "protein_g": 44.05,
          "carbs_g": 0.0,
          "fat_g": 17.98
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.0,
          "carbs_g": 0.0,
          "fat_g": 0.0
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS035",
        "name": "Carne moída cajun em bolinhos",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-BV10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 220.0,
                  "macros": {
                    "kcal": 349.8,
                    "protein_g": 44.05,
                    "carbs_g": 0.0,
                    "fat_g": 17.98
                  },
                  "nutrition_basis_grams": 165.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 165.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 349.8,
                "protein_g": 44.05,
                "carbs_g": 0.0,
                "fat_g": 17.98
              }
            }
          }
        ],
        "total": {
          "kcal": 349.8,
          "protein_g": 44.05,
          "carbs_g": 0.0,
          "fat_g": 17.98
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.0,
          "carbs_g": 0.0,
          "fat_g": 0.0
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS036",
        "name": "Carne moída com ervas em almôndegas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-BV11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 220.0,
                  "macros": {
                    "kcal": 349.8,
                    "protein_g": 44.05,
                    "carbs_g": 0.0,
                    "fat_g": 17.98
                  },
                  "nutrition_basis_grams": 165.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 165.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 349.8,
                "protein_g": 44.05,
                "carbs_g": 0.0,
                "fat_g": 17.98
              }
            }
          }
        ],
        "total": {
          "kcal": 349.8,
          "protein_g": 44.05,
          "carbs_g": 0.0,
          "fat_g": 17.98
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.0,
          "carbs_g": 0.0,
          "fat_g": 0.0
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS037",
        "name": "Carne moída estilo burger smash",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-BV12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 220.0,
                  "macros": {
                    "kcal": 349.8,
                    "protein_g": 44.05,
                    "carbs_g": 0.0,
                    "fat_g": 17.98
                  },
                  "nutrition_basis_grams": 165.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 165.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 349.8,
                "protein_g": 44.05,
                "carbs_g": 0.0,
                "fat_g": 17.98
              }
            }
          }
        ],
        "total": {
          "kcal": 349.8,
          "protein_g": 44.05,
          "carbs_g": 0.0,
          "fat_g": 17.98
        },
        "delta_vs_target": {
          "kcal": 0.0,
          "protein_g": 0.0,
          "carbs_g": 0.0,
          "fat_g": 0.0
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS038",
        "name": "Frango grelhado ao limão e alho",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-CV01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 195.9,
                  "macros": {
                    "kcal": 220.22,
                    "protein_g": 44.76,
                    "carbs_g": 0.0,
                    "fat_g": 4.52
                  },
                  "nutrition_basis_grams": 143.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 143.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 346.22,
                "protein_g": 44.76,
                "carbs_g": 0.0,
                "fat_g": 18.52
              }
            }
          }
        ],
        "total": {
          "kcal": 346.22,
          "protein_g": 44.76,
          "carbs_g": 0.0,
          "fat_g": 18.52
        },
        "delta_vs_target": {
          "kcal": -3.58,
          "protein_g": 0.71,
          "carbs_g": 0.0,
          "fat_g": 0.54
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS039",
        "name": "Frango ao limão e tomilho",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-CV02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 195.9,
                  "macros": {
                    "kcal": 220.22,
                    "protein_g": 44.76,
                    "carbs_g": 0.0,
                    "fat_g": 4.52
                  },
                  "nutrition_basis_grams": 143.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 143.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 346.22,
                "protein_g": 44.76,
                "carbs_g": 0.0,
                "fat_g": 18.52
              }
            }
          }
        ],
        "total": {
          "kcal": 346.22,
          "protein_g": 44.76,
          "carbs_g": 0.0,
          "fat_g": 18.52
        },
        "delta_vs_target": {
          "kcal": -3.58,
          "protein_g": 0.71,
          "carbs_g": 0.0,
          "fat_g": 0.54
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS040",
        "name": "Frango jerk",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-CV03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 195.9,
                  "macros": {
                    "kcal": 220.22,
                    "protein_g": 44.76,
                    "carbs_g": 0.0,
                    "fat_g": 4.52
                  },
                  "nutrition_basis_grams": 143.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 143.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 346.22,
                "protein_g": 44.76,
                "carbs_g": 0.0,
                "fat_g": 18.52
              }
            }
          }
        ],
        "total": {
          "kcal": 346.22,
          "protein_g": 44.76,
          "carbs_g": 0.0,
          "fat_g": 18.52
        },
        "delta_vs_target": {
          "kcal": -3.58,
          "protein_g": 0.71,
          "carbs_g": 0.0,
          "fat_g": 0.54
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS041",
        "name": "Frango tikka em espetos",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-CV04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 195.9,
                  "macros": {
                    "kcal": 220.22,
                    "protein_g": 44.76,
                    "carbs_g": 0.0,
                    "fat_g": 4.52
                  },
                  "nutrition_basis_grams": 143.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 143.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 346.22,
                "protein_g": 44.76,
                "carbs_g": 0.0,
                "fat_g": 18.52
              }
            }
          }
        ],
        "total": {
          "kcal": 346.22,
          "protein_g": 44.76,
          "carbs_g": 0.0,
          "fat_g": 18.52
        },
        "delta_vs_target": {
          "kcal": -3.58,
          "protein_g": 0.71,
          "carbs_g": 0.0,
          "fat_g": 0.54
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS042",
        "name": "Frango curry seco",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-CV05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 195.9,
                  "macros": {
                    "kcal": 220.22,
                    "protein_g": 44.76,
                    "carbs_g": 0.0,
                    "fat_g": 4.52
                  },
                  "nutrition_basis_grams": 143.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 143.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 346.22,
                "protein_g": 44.76,
                "carbs_g": 0.0,
                "fat_g": 18.52
              }
            }
          }
        ],
        "total": {
          "kcal": 346.22,
          "protein_g": 44.76,
          "carbs_g": 0.0,
          "fat_g": 18.52
        },
        "delta_vs_target": {
          "kcal": -3.58,
          "protein_g": 0.71,
          "carbs_g": 0.0,
          "fat_g": 0.54
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS043",
        "name": "Frango souvlaki em espetos",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-CV06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 195.9,
                  "macros": {
                    "kcal": 220.22,
                    "protein_g": 44.76,
                    "carbs_g": 0.0,
                    "fat_g": 4.52
                  },
                  "nutrition_basis_grams": 143.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 143.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 346.22,
                "protein_g": 44.76,
                "carbs_g": 0.0,
                "fat_g": 18.52
              }
            }
          }
        ],
        "total": {
          "kcal": 346.22,
          "protein_g": 44.76,
          "carbs_g": 0.0,
          "fat_g": 18.52
        },
        "delta_vs_target": {
          "kcal": -3.58,
          "protein_g": 0.71,
          "carbs_g": 0.0,
          "fat_g": 0.54
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS044",
        "name": "Frango gyros em tiras",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-CV07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 195.9,
                  "macros": {
                    "kcal": 220.22,
                    "protein_g": 44.76,
                    "carbs_g": 0.0,
                    "fat_g": 4.52
                  },
                  "nutrition_basis_grams": 143.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 143.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 346.22,
                "protein_g": 44.76,
                "carbs_g": 0.0,
                "fat_g": 18.52
              }
            }
          }
        ],
        "total": {
          "kcal": 346.22,
          "protein_g": 44.76,
          "carbs_g": 0.0,
          "fat_g": 18.52
        },
        "delta_vs_target": {
          "kcal": -3.58,
          "protein_g": 0.71,
          "carbs_g": 0.0,
          "fat_g": 0.54
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS045",
        "name": "Almôndegas de frango com limão e manjericão",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-CV08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 195.9,
                  "macros": {
                    "kcal": 220.22,
                    "protein_g": 44.76,
                    "carbs_g": 0.0,
                    "fat_g": 4.52
                  },
                  "nutrition_basis_grams": 143.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 143.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 346.22,
                "protein_g": 44.76,
                "carbs_g": 0.0,
                "fat_g": 18.52
              }
            }
          }
        ],
        "total": {
          "kcal": 346.22,
          "protein_g": 44.76,
          "carbs_g": 0.0,
          "fat_g": 18.52
        },
        "delta_vs_target": {
          "kcal": -3.58,
          "protein_g": 0.71,
          "carbs_g": 0.0,
          "fat_g": 0.54
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS046",
        "name": "Mini hambúrguer de frango",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-CV09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 195.9,
                  "macros": {
                    "kcal": 220.22,
                    "protein_g": 44.76,
                    "carbs_g": 0.0,
                    "fat_g": 4.52
                  },
                  "nutrition_basis_grams": 143.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 143.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 346.22,
                "protein_g": 44.76,
                "carbs_g": 0.0,
                "fat_g": 18.52
              }
            }
          }
        ],
        "total": {
          "kcal": 346.22,
          "protein_g": 44.76,
          "carbs_g": 0.0,
          "fat_g": 18.52
        },
        "delta_vs_target": {
          "kcal": -3.58,
          "protein_g": 0.71,
          "carbs_g": 0.0,
          "fat_g": 0.54
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS047",
        "name": "Kofta de frango",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-CV10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 195.9,
                  "macros": {
                    "kcal": 220.22,
                    "protein_g": 44.76,
                    "carbs_g": 0.0,
                    "fat_g": 4.52
                  },
                  "nutrition_basis_grams": 143.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 143.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 346.22,
                "protein_g": 44.76,
                "carbs_g": 0.0,
                "fat_g": 18.52
              }
            }
          }
        ],
        "total": {
          "kcal": 346.22,
          "protein_g": 44.76,
          "carbs_g": 0.0,
          "fat_g": 18.52
        },
        "delta_vs_target": {
          "kcal": -3.58,
          "protein_g": 0.71,
          "carbs_g": 0.0,
          "fat_g": 0.54
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS048",
        "name": "Frango em cubos na air fryer com páprica",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-CV11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 195.9,
                  "macros": {
                    "kcal": 220.22,
                    "protein_g": 44.76,
                    "carbs_g": 0.0,
                    "fat_g": 4.52
                  },
                  "nutrition_basis_grams": 143.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 143.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 346.22,
                "protein_g": 44.76,
                "carbs_g": 0.0,
                "fat_g": 18.52
              }
            }
          }
        ],
        "total": {
          "kcal": 346.22,
          "protein_g": 44.76,
          "carbs_g": 0.0,
          "fat_g": 18.52
        },
        "delta_vs_target": {
          "kcal": -3.58,
          "protein_g": 0.71,
          "carbs_g": 0.0,
          "fat_g": 0.54
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS049",
        "name": "Frango grelhado com za’atar",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-CV12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 195.9,
                  "macros": {
                    "kcal": 220.22,
                    "protein_g": 44.76,
                    "carbs_g": 0.0,
                    "fat_g": 4.52
                  },
                  "nutrition_basis_grams": 143.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 143.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 346.22,
                "protein_g": 44.76,
                "carbs_g": 0.0,
                "fat_g": 18.52
              }
            }
          }
        ],
        "total": {
          "kcal": 346.22,
          "protein_g": 44.76,
          "carbs_g": 0.0,
          "fat_g": 18.52
        },
        "delta_vs_target": {
          "kcal": -3.58,
          "protein_g": 0.71,
          "carbs_g": 0.0,
          "fat_g": 0.54
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS050",
        "name": "Frango com harissa seca",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-CV13",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 195.9,
                  "macros": {
                    "kcal": 220.22,
                    "protein_g": 44.76,
                    "carbs_g": 0.0,
                    "fat_g": 4.52
                  },
                  "nutrition_basis_grams": 143.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 143.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 346.22,
                "protein_g": 44.76,
                "carbs_g": 0.0,
                "fat_g": 18.52
              }
            }
          }
        ],
        "total": {
          "kcal": 346.22,
          "protein_g": 44.76,
          "carbs_g": 0.0,
          "fat_g": 18.52
        },
        "delta_vs_target": {
          "kcal": -3.58,
          "protein_g": 0.71,
          "carbs_g": 0.0,
          "fat_g": 0.54
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS051",
        "name": "Frango com mostarda e ervas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-CV14",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 195.9,
                  "macros": {
                    "kcal": 220.22,
                    "protein_g": 44.76,
                    "carbs_g": 0.0,
                    "fat_g": 4.52
                  },
                  "nutrition_basis_grams": 143.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 143.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 14.0,
                  "macros": {
                    "kcal": 126.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 14.0
                  },
                  "nutrition_basis_grams": 14.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 346.22,
                "protein_g": 44.76,
                "carbs_g": 0.0,
                "fat_g": 18.52
              }
            }
          }
        ],
        "total": {
          "kcal": 346.22,
          "protein_g": 44.76,
          "carbs_g": 0.0,
          "fat_g": 18.52
        },
        "delta_vs_target": {
          "kcal": -3.58,
          "protein_g": 0.71,
          "carbs_g": 0.0,
          "fat_g": 0.54
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS052",
        "name": "Tilápia com alho e páprica",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-FV01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 272.9,
                  "macros": {
                    "kcal": 213.92,
                    "protein_g": 44.12,
                    "carbs_g": 0.0,
                    "fat_g": 4.05
                  },
                  "nutrition_basis_grams": 191.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 191.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 348.92,
                "protein_g": 44.12,
                "carbs_g": 0.0,
                "fat_g": 19.05
              }
            }
          }
        ],
        "total": {
          "kcal": 348.92,
          "protein_g": 44.12,
          "carbs_g": 0.0,
          "fat_g": 19.05
        },
        "delta_vs_target": {
          "kcal": -0.88,
          "protein_g": 0.07,
          "carbs_g": 0.0,
          "fat_g": 1.07
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS053",
        "name": "Tilápia ao limão e ervas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-FV02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 272.9,
                  "macros": {
                    "kcal": 213.92,
                    "protein_g": 44.12,
                    "carbs_g": 0.0,
                    "fat_g": 4.05
                  },
                  "nutrition_basis_grams": 191.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 191.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 348.92,
                "protein_g": 44.12,
                "carbs_g": 0.0,
                "fat_g": 19.05
              }
            }
          }
        ],
        "total": {
          "kcal": 348.92,
          "protein_g": 44.12,
          "carbs_g": 0.0,
          "fat_g": 19.05
        },
        "delta_vs_target": {
          "kcal": -0.88,
          "protein_g": 0.07,
          "carbs_g": 0.0,
          "fat_g": 1.07
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS054",
        "name": "Tilápia ao parmesão",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-FV03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 272.9,
                  "macros": {
                    "kcal": 213.92,
                    "protein_g": 44.12,
                    "carbs_g": 0.0,
                    "fat_g": 4.05
                  },
                  "nutrition_basis_grams": 191.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 191.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 348.92,
                "protein_g": 44.12,
                "carbs_g": 0.0,
                "fat_g": 19.05
              }
            }
          }
        ],
        "total": {
          "kcal": 348.92,
          "protein_g": 44.12,
          "carbs_g": 0.0,
          "fat_g": 19.05
        },
        "delta_vs_target": {
          "kcal": -0.88,
          "protein_g": 0.07,
          "carbs_g": 0.0,
          "fat_g": 1.07
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS055",
        "name": "Tilápia cajun",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-FV04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 272.9,
                  "macros": {
                    "kcal": 213.92,
                    "protein_g": 44.12,
                    "carbs_g": 0.0,
                    "fat_g": 4.05
                  },
                  "nutrition_basis_grams": 191.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 191.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 348.92,
                "protein_g": 44.12,
                "carbs_g": 0.0,
                "fat_g": 19.05
              }
            }
          }
        ],
        "total": {
          "kcal": 348.92,
          "protein_g": 44.12,
          "carbs_g": 0.0,
          "fat_g": 19.05
        },
        "delta_vs_target": {
          "kcal": -0.88,
          "protein_g": 0.07,
          "carbs_g": 0.0,
          "fat_g": 1.07
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS056",
        "name": "Tilápia com za’atar e limão",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-FV05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 272.9,
                  "macros": {
                    "kcal": 213.92,
                    "protein_g": 44.12,
                    "carbs_g": 0.0,
                    "fat_g": 4.05
                  },
                  "nutrition_basis_grams": 191.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 191.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 348.92,
                "protein_g": 44.12,
                "carbs_g": 0.0,
                "fat_g": 19.05
              }
            }
          }
        ],
        "total": {
          "kcal": 348.92,
          "protein_g": 44.12,
          "carbs_g": 0.0,
          "fat_g": 19.05
        },
        "delta_vs_target": {
          "kcal": -0.88,
          "protein_g": 0.07,
          "carbs_g": 0.0,
          "fat_g": 1.07
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS057",
        "name": "Tilápia ao curry seco",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-FV06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 272.9,
                  "macros": {
                    "kcal": 213.92,
                    "protein_g": 44.12,
                    "carbs_g": 0.0,
                    "fat_g": 4.05
                  },
                  "nutrition_basis_grams": 191.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 191.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 348.92,
                "protein_g": 44.12,
                "carbs_g": 0.0,
                "fat_g": 19.05
              }
            }
          }
        ],
        "total": {
          "kcal": 348.92,
          "protein_g": 44.12,
          "carbs_g": 0.0,
          "fat_g": 19.05
        },
        "delta_vs_target": {
          "kcal": -0.88,
          "protein_g": 0.07,
          "carbs_g": 0.0,
          "fat_g": 1.07
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS058",
        "name": "Tilápia com harissa",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-FV07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 272.9,
                  "macros": {
                    "kcal": 213.92,
                    "protein_g": 44.12,
                    "carbs_g": 0.0,
                    "fat_g": 4.05
                  },
                  "nutrition_basis_grams": 191.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 191.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 348.92,
                "protein_g": 44.12,
                "carbs_g": 0.0,
                "fat_g": 19.05
              }
            }
          }
        ],
        "total": {
          "kcal": 348.92,
          "protein_g": 44.12,
          "carbs_g": 0.0,
          "fat_g": 19.05
        },
        "delta_vs_target": {
          "kcal": -0.88,
          "protein_g": 0.07,
          "carbs_g": 0.0,
          "fat_g": 1.07
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS059",
        "name": "Tilápia ao miso",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-FV08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 272.9,
                  "macros": {
                    "kcal": 213.92,
                    "protein_g": 44.12,
                    "carbs_g": 0.0,
                    "fat_g": 4.05
                  },
                  "nutrition_basis_grams": 191.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 191.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 348.92,
                "protein_g": 44.12,
                "carbs_g": 0.0,
                "fat_g": 19.05
              }
            }
          }
        ],
        "total": {
          "kcal": 348.92,
          "protein_g": 44.12,
          "carbs_g": 0.0,
          "fat_g": 19.05
        },
        "delta_vs_target": {
          "kcal": -0.88,
          "protein_g": 0.07,
          "carbs_g": 0.0,
          "fat_g": 1.07
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS060",
        "name": "Tilápia ao dill e limão",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-FV09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 272.9,
                  "macros": {
                    "kcal": 213.92,
                    "protein_g": 44.12,
                    "carbs_g": 0.0,
                    "fat_g": 4.05
                  },
                  "nutrition_basis_grams": 191.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 191.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 348.92,
                "protein_g": 44.12,
                "carbs_g": 0.0,
                "fat_g": 19.05
              }
            }
          }
        ],
        "total": {
          "kcal": 348.92,
          "protein_g": 44.12,
          "carbs_g": 0.0,
          "fat_g": 19.05
        },
        "delta_vs_target": {
          "kcal": -0.88,
          "protein_g": 0.07,
          "carbs_g": 0.0,
          "fat_g": 1.07
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS061",
        "name": "Tilápia com chimichurri",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-FV10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 272.9,
                  "macros": {
                    "kcal": 213.92,
                    "protein_g": 44.12,
                    "carbs_g": 0.0,
                    "fat_g": 4.05
                  },
                  "nutrition_basis_grams": 191.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 191.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 348.92,
                "protein_g": 44.12,
                "carbs_g": 0.0,
                "fat_g": 19.05
              }
            }
          }
        ],
        "total": {
          "kcal": 348.92,
          "protein_g": 44.12,
          "carbs_g": 0.0,
          "fat_g": 19.05
        },
        "delta_vs_target": {
          "kcal": -0.88,
          "protein_g": 0.07,
          "carbs_g": 0.0,
          "fat_g": 1.07
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS062",
        "name": "Lombo suíno com limão, alho e alecrim",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-PV01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 193.8,
                  "macros": {
                    "kcal": 248.0,
                    "protein_g": 44.27,
                    "carbs_g": 0.0,
                    "fat_g": 7.94
                  },
                  "nutrition_basis_grams": 124.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 124.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 11.0,
                  "macros": {
                    "kcal": 99.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 11.0
                  },
                  "nutrition_basis_grams": 11.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 347.0,
                "protein_g": 44.27,
                "carbs_g": 0.0,
                "fat_g": 18.94
              }
            }
          }
        ],
        "total": {
          "kcal": 347.0,
          "protein_g": 44.27,
          "carbs_g": 0.0,
          "fat_g": 18.94
        },
        "delta_vs_target": {
          "kcal": -2.8,
          "protein_g": 0.22,
          "carbs_g": 0.0,
          "fat_g": 0.96
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS063",
        "name": "Lombo suíno com mostarda e ervas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-PV02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 193.8,
                  "macros": {
                    "kcal": 248.0,
                    "protein_g": 44.27,
                    "carbs_g": 0.0,
                    "fat_g": 7.94
                  },
                  "nutrition_basis_grams": 124.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 124.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 11.0,
                  "macros": {
                    "kcal": 99.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 11.0
                  },
                  "nutrition_basis_grams": 11.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 347.0,
                "protein_g": 44.27,
                "carbs_g": 0.0,
                "fat_g": 18.94
              }
            }
          }
        ],
        "total": {
          "kcal": 347.0,
          "protein_g": 44.27,
          "carbs_g": 0.0,
          "fat_g": 18.94
        },
        "delta_vs_target": {
          "kcal": -2.8,
          "protein_g": 0.22,
          "carbs_g": 0.0,
          "fat_g": 0.96
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS064",
        "name": "Lombo suíno cajun",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-PV03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 193.8,
                  "macros": {
                    "kcal": 248.0,
                    "protein_g": 44.27,
                    "carbs_g": 0.0,
                    "fat_g": 7.94
                  },
                  "nutrition_basis_grams": 124.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 124.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 11.0,
                  "macros": {
                    "kcal": 99.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 11.0
                  },
                  "nutrition_basis_grams": 11.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 347.0,
                "protein_g": 44.27,
                "carbs_g": 0.0,
                "fat_g": 18.94
              }
            }
          }
        ],
        "total": {
          "kcal": 347.0,
          "protein_g": 44.27,
          "carbs_g": 0.0,
          "fat_g": 18.94
        },
        "delta_vs_target": {
          "kcal": -2.8,
          "protein_g": 0.22,
          "carbs_g": 0.0,
          "fat_g": 0.96
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS065",
        "name": "Lombo suíno ao za’atar",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-PV04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 193.8,
                  "macros": {
                    "kcal": 248.0,
                    "protein_g": 44.27,
                    "carbs_g": 0.0,
                    "fat_g": 7.94
                  },
                  "nutrition_basis_grams": 124.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 124.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 11.0,
                  "macros": {
                    "kcal": 99.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 11.0
                  },
                  "nutrition_basis_grams": 11.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 347.0,
                "protein_g": 44.27,
                "carbs_g": 0.0,
                "fat_g": 18.94
              }
            }
          }
        ],
        "total": {
          "kcal": 347.0,
          "protein_g": 44.27,
          "carbs_g": 0.0,
          "fat_g": 18.94
        },
        "delta_vs_target": {
          "kcal": -2.8,
          "protein_g": 0.22,
          "carbs_g": 0.0,
          "fat_g": 0.96
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS066",
        "name": "Almôndegas suínas com limão e erva-doce",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-PV05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 193.8,
                  "macros": {
                    "kcal": 248.0,
                    "protein_g": 44.27,
                    "carbs_g": 0.0,
                    "fat_g": 7.94
                  },
                  "nutrition_basis_grams": 124.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 124.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 11.0,
                  "macros": {
                    "kcal": 99.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 11.0
                  },
                  "nutrition_basis_grams": 11.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 347.0,
                "protein_g": 44.27,
                "carbs_g": 0.0,
                "fat_g": 18.94
              }
            }
          }
        ],
        "total": {
          "kcal": 347.0,
          "protein_g": 44.27,
          "carbs_g": 0.0,
          "fat_g": 18.94
        },
        "delta_vs_target": {
          "kcal": -2.8,
          "protein_g": 0.22,
          "carbs_g": 0.0,
          "fat_g": 0.96
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS067",
        "name": "Kofta suína mexicana adaptada",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-PV06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 193.8,
                  "macros": {
                    "kcal": 248.0,
                    "protein_g": 44.27,
                    "carbs_g": 0.0,
                    "fat_g": 7.94
                  },
                  "nutrition_basis_grams": 124.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 124.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 11.0,
                  "macros": {
                    "kcal": 99.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 11.0
                  },
                  "nutrition_basis_grams": 11.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 347.0,
                "protein_g": 44.27,
                "carbs_g": 0.0,
                "fat_g": 18.94
              }
            }
          }
        ],
        "total": {
          "kcal": 347.0,
          "protein_g": 44.27,
          "carbs_g": 0.0,
          "fat_g": 18.94
        },
        "delta_vs_target": {
          "kcal": -2.8,
          "protein_g": 0.22,
          "carbs_g": 0.0,
          "fat_g": 0.96
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS068",
        "name": "Lombo suíno com miso",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-PV07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 193.8,
                  "macros": {
                    "kcal": 248.0,
                    "protein_g": 44.27,
                    "carbs_g": 0.0,
                    "fat_g": 7.94
                  },
                  "nutrition_basis_grams": 124.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 124.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 11.0,
                  "macros": {
                    "kcal": 99.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 11.0
                  },
                  "nutrition_basis_grams": 11.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 347.0,
                "protein_g": 44.27,
                "carbs_g": 0.0,
                "fat_g": 18.94
              }
            }
          }
        ],
        "total": {
          "kcal": 347.0,
          "protein_g": 44.27,
          "carbs_g": 0.0,
          "fat_g": 18.94
        },
        "delta_vs_target": {
          "kcal": -2.8,
          "protein_g": 0.22,
          "carbs_g": 0.0,
          "fat_g": 0.96
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS069",
        "name": "Lombo suíno com chimichurri",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-PV08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 193.8,
                  "macros": {
                    "kcal": 248.0,
                    "protein_g": 44.27,
                    "carbs_g": 0.0,
                    "fat_g": 7.94
                  },
                  "nutrition_basis_grams": 124.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 124.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 11.0,
                  "macros": {
                    "kcal": 99.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 11.0
                  },
                  "nutrition_basis_grams": 11.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 347.0,
                "protein_g": 44.27,
                "carbs_g": 0.0,
                "fat_g": 18.94
              }
            }
          }
        ],
        "total": {
          "kcal": 347.0,
          "protein_g": 44.27,
          "carbs_g": 0.0,
          "fat_g": 18.94
        },
        "delta_vs_target": {
          "kcal": -2.8,
          "protein_g": 0.22,
          "carbs_g": 0.0,
          "fat_g": 0.96
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS070",
        "name": "Lombo suíno com pimenta e alho",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-PV09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 193.8,
                  "macros": {
                    "kcal": 248.0,
                    "protein_g": 44.27,
                    "carbs_g": 0.0,
                    "fat_g": 7.94
                  },
                  "nutrition_basis_grams": 124.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 124.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 11.0,
                  "macros": {
                    "kcal": 99.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 11.0
                  },
                  "nutrition_basis_grams": 11.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 347.0,
                "protein_g": 44.27,
                "carbs_g": 0.0,
                "fat_g": 18.94
              }
            }
          }
        ],
        "total": {
          "kcal": 347.0,
          "protein_g": 44.27,
          "carbs_g": 0.0,
          "fat_g": 18.94
        },
        "delta_vs_target": {
          "kcal": -2.8,
          "protein_g": 0.22,
          "carbs_g": 0.0,
          "fat_g": 0.96
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS071",
        "name": "Omelette roll-up proteico",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-EV01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 40.0,
                  "macros": {
                    "kcal": 54.0,
                    "protein_g": 4.52,
                    "carbs_g": 0.85,
                    "fat_g": 3.62
                  },
                  "nutrition_basis_grams": 40.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 174.0,
                  "macros": {
                    "kcal": 195.58,
                    "protein_g": 39.75,
                    "carbs_g": 0.0,
                    "fat_g": 4.01
                  },
                  "nutrition_basis_grams": 127.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 127.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 11.0,
                  "macros": {
                    "kcal": 99.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 11.0
                  },
                  "nutrition_basis_grams": 11.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 348.58,
                "protein_g": 44.27,
                "carbs_g": 0.85,
                "fat_g": 18.63
              }
            }
          }
        ],
        "total": {
          "kcal": 348.58,
          "protein_g": 44.27,
          "carbs_g": 0.85,
          "fat_g": 18.63
        },
        "delta_vs_target": {
          "kcal": -1.22,
          "protein_g": 0.22,
          "carbs_g": 0.85,
          "fat_g": 0.65
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS072",
        "name": "Egg bites proteicos",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-EV02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 40.0,
                  "macros": {
                    "kcal": 54.0,
                    "protein_g": 4.52,
                    "carbs_g": 0.85,
                    "fat_g": 3.62
                  },
                  "nutrition_basis_grams": 40.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 174.0,
                  "macros": {
                    "kcal": 195.58,
                    "protein_g": 39.75,
                    "carbs_g": 0.0,
                    "fat_g": 4.01
                  },
                  "nutrition_basis_grams": 127.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 127.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 11.0,
                  "macros": {
                    "kcal": 99.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 11.0
                  },
                  "nutrition_basis_grams": 11.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 348.58,
                "protein_g": 44.27,
                "carbs_g": 0.85,
                "fat_g": 18.63
              }
            }
          }
        ],
        "total": {
          "kcal": 348.58,
          "protein_g": 44.27,
          "carbs_g": 0.85,
          "fat_g": 18.63
        },
        "delta_vs_target": {
          "kcal": -1.22,
          "protein_g": 0.22,
          "carbs_g": 0.85,
          "fat_g": 0.65
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS073",
        "name": "Omelete na air fryer proteico",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-EV03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 40.0,
                  "macros": {
                    "kcal": 54.0,
                    "protein_g": 4.52,
                    "carbs_g": 0.85,
                    "fat_g": 3.62
                  },
                  "nutrition_basis_grams": 40.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 174.0,
                  "macros": {
                    "kcal": 195.58,
                    "protein_g": 39.75,
                    "carbs_g": 0.0,
                    "fat_g": 4.01
                  },
                  "nutrition_basis_grams": 127.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 127.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 11.0,
                  "macros": {
                    "kcal": 99.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 11.0
                  },
                  "nutrition_basis_grams": 11.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 348.58,
                "protein_g": 44.27,
                "carbs_g": 0.85,
                "fat_g": 18.63
              }
            }
          }
        ],
        "total": {
          "kcal": 348.58,
          "protein_g": 44.27,
          "carbs_g": 0.85,
          "fat_g": 18.63
        },
        "delta_vs_target": {
          "kcal": -1.22,
          "protein_g": 0.22,
          "carbs_g": 0.85,
          "fat_g": 0.65
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS074",
        "name": "Quiche sem massa proteica",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-EV04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 40.0,
                  "macros": {
                    "kcal": 54.0,
                    "protein_g": 4.52,
                    "carbs_g": 0.85,
                    "fat_g": 3.62
                  },
                  "nutrition_basis_grams": 40.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 174.0,
                  "macros": {
                    "kcal": 195.58,
                    "protein_g": 39.75,
                    "carbs_g": 0.0,
                    "fat_g": 4.01
                  },
                  "nutrition_basis_grams": 127.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 127.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 11.0,
                  "macros": {
                    "kcal": 99.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 11.0
                  },
                  "nutrition_basis_grams": 11.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 348.58,
                "protein_g": 44.27,
                "carbs_g": 0.85,
                "fat_g": 18.63
              }
            }
          }
        ],
        "total": {
          "kcal": 348.58,
          "protein_g": 44.27,
          "carbs_g": 0.85,
          "fat_g": 18.63
        },
        "delta_vs_target": {
          "kcal": -1.22,
          "protein_g": 0.22,
          "carbs_g": 0.85,
          "fat_g": 0.65
        },
        "origin": "generated_v3"
      },
      {
        "id": "SS075",
        "name": "Muffins de omelete proteicos",
        "recipe_uses": [
          {
            "recipe_id": "NEW-SS-EV05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING001",
                  "ingredient_name": "Ovo de galinha inteiro cru",
                  "grams": 40.0,
                  "macros": {
                    "kcal": 54.0,
                    "protein_g": 4.52,
                    "carbs_g": 0.85,
                    "fat_g": 3.62
                  },
                  "nutrition_basis_grams": 40.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING031",
                  "ingredient_name": "Clara de ovo de galinha crua",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 174.0,
                  "macros": {
                    "kcal": 195.58,
                    "protein_g": 39.75,
                    "carbs_g": 0.0,
                    "fat_g": 4.01
                  },
                  "nutrition_basis_grams": 127.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 127.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING004",
                  "ingredient_name": "Queijo muçarela (usar versão zero lactose quando disponível)",
                  "grams": 0.0,
                  "macros": {
                    "kcal": 0.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 0.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 11.0,
                  "macros": {
                    "kcal": 99.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 11.0
                  },
                  "nutrition_basis_grams": 11.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 348.58,
                "protein_g": 44.27,
                "carbs_g": 0.85,
                "fat_g": 18.63
              }
            }
          }
        ],
        "total": {
          "kcal": 348.58,
          "protein_g": 44.27,
          "carbs_g": 0.85,
          "fat_g": 18.63
        },
        "delta_vs_target": {
          "kcal": -1.22,
          "protein_g": 0.22,
          "carbs_g": 0.85,
          "fat_g": 0.65
        },
        "origin": "generated_v3"
      }
    ],
    "dinner": [
      {
        "id": "D02",
        "name": "Strogonoff de carne com cogumelos e iogurte zero lactose + vagem com mostarda em grãos + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 362.7,
                  "macros": {
                    "kcal": 577.0,
                    "protein_g": 72.6,
                    "carbs_g": 0.0,
                    "fat_g": 29.6
                  },
                  "nutrition_basis_grams": 272.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 272.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.4,
                    "carbs_g": 0.2,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 155.1,
                  "macros": {
                    "kcal": 32.0,
                    "protein_g": 2.2,
                    "carbs_g": 7.0,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 138.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 138.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.4,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 45.5,
                  "macros": {
                    "kcal": 8.0,
                    "protein_g": 0.5,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 20.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 10.3,
                  "macros": {
                    "kcal": 58.0,
                    "protein_g": 1.9,
                    "carbs_g": 3.0,
                    "fat_g": 4.7
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 10.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 691.0,
                "protein_g": 78.8,
                "carbs_g": 13.2,
                "fat_g": 35.0
              }
            }
          }
        ],
        "total": {
          "kcal": 691.0,
          "protein_g": 78.8,
          "carbs_g": 13.2,
          "fat_g": 35.0
        },
        "delta_vs_target": {
          "kcal": 5.7,
          "protein_g": 0.0,
          "carbs_g": 0.22,
          "fat_g": -0.08
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D04",
        "name": "Carne ao curry + vagem com amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 365.3,
                  "macros": {
                    "kcal": 581.0,
                    "protein_g": 73.2,
                    "carbs_g": 0.0,
                    "fat_g": 29.9
                  },
                  "nutrition_basis_grams": 274.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 274.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 152.8,
                  "macros": {
                    "kcal": 31.0,
                    "protein_g": 2.2,
                    "carbs_g": 6.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 136.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 136.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.7,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 10.3,
                  "macros": {
                    "kcal": 58.0,
                    "protein_g": 1.9,
                    "carbs_g": 3.0,
                    "fat_g": 4.7
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 10.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 686.0,
                "protein_g": 78.7,
                "carbs_g": 13.1,
                "fat_g": 34.9
              }
            }
          }
        ],
        "total": {
          "kcal": 686.0,
          "protein_g": 78.7,
          "carbs_g": 13.1,
          "fat_g": 34.9
        },
        "delta_vs_target": {
          "kcal": 0.7,
          "protein_g": -0.1,
          "carbs_g": 0.12,
          "fat_g": -0.18
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D06",
        "name": "Carne ao curry + vagem com mostarda em grãos + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 365.3,
                  "macros": {
                    "kcal": 581.0,
                    "protein_g": 73.2,
                    "carbs_g": 0.0,
                    "fat_g": 29.9
                  },
                  "nutrition_basis_grams": 274.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 274.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 152.8,
                  "macros": {
                    "kcal": 31.0,
                    "protein_g": 2.2,
                    "carbs_g": 6.9,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 136.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 136.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 4.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.7,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 10.3,
                  "macros": {
                    "kcal": 58.0,
                    "protein_g": 1.9,
                    "carbs_g": 3.0,
                    "fat_g": 4.7
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 10.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 686.0,
                "protein_g": 78.7,
                "carbs_g": 13.1,
                "fat_g": 34.9
              }
            }
          }
        ],
        "total": {
          "kcal": 686.0,
          "protein_g": 78.7,
          "carbs_g": 13.1,
          "fat_g": 34.9
        },
        "delta_vs_target": {
          "kcal": 0.7,
          "protein_g": -0.1,
          "carbs_g": 0.12,
          "fat_g": -0.18
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D07",
        "name": "Ragù de carne e tomate + purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 364.0,
                  "macros": {
                    "kcal": 579.0,
                    "protein_g": 72.9,
                    "carbs_g": 0.0,
                    "fat_g": 29.8
                  },
                  "nutrition_basis_grams": 273.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 273.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 193.9,
                  "macros": {
                    "kcal": 32.0,
                    "protein_g": 2.4,
                    "carbs_g": 6.5,
                    "fat_g": 0.4
                  },
                  "nutrition_basis_grams": 190.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 190.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.3,
                    "carbs_g": 1.1,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.7,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 10.3,
                  "macros": {
                    "kcal": 58.0,
                    "protein_g": 1.9,
                    "carbs_g": 3.0,
                    "fat_g": 4.7
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 10.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 686.0,
                "protein_g": 78.7,
                "carbs_g": 13.0,
                "fat_g": 35.1
              }
            }
          }
        ],
        "total": {
          "kcal": 686.0,
          "protein_g": 78.7,
          "carbs_g": 13.0,
          "fat_g": 35.1
        },
        "delta_vs_target": {
          "kcal": 0.7,
          "protein_g": -0.1,
          "carbs_g": 0.02,
          "fat_g": 0.02
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D09",
        "name": "Ragù de carne e tomate + vagem ao limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 353.3,
                  "macros": {
                    "kcal": 562.0,
                    "protein_g": 70.8,
                    "carbs_g": 0.0,
                    "fat_g": 28.9
                  },
                  "nutrition_basis_grams": 265.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 265.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 45.0,
                    "protein_g": 3.2,
                    "carbs_g": 0.2,
                    "fat_g": 3.5
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 173.0,
                  "macros": {
                    "kcal": 35.0,
                    "protein_g": 2.5,
                    "carbs_g": 7.8,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 154.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 154.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.3,
                    "carbs_g": 1.1,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.7,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 5.2,
                  "macros": {
                    "kcal": 29.0,
                    "protein_g": 0.9,
                    "carbs_g": 1.5,
                    "fat_g": 2.4
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 5.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 688.0,
                "protein_g": 78.9,
                "carbs_g": 13.0,
                "fat_g": 35.2
              }
            }
          }
        ],
        "total": {
          "kcal": 688.0,
          "protein_g": 78.9,
          "carbs_g": 13.0,
          "fat_g": 35.2
        },
        "delta_vs_target": {
          "kcal": 2.7,
          "protein_g": 0.1,
          "carbs_g": 0.02,
          "fat_g": 0.12
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D11",
        "name": "Bolonhesa sem massa + vagem com alho + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 365.3,
                  "macros": {
                    "kcal": 581.0,
                    "protein_g": 73.2,
                    "carbs_g": 0.0,
                    "fat_g": 29.9
                  },
                  "nutrition_basis_grams": 274.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 274.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 143.8,
                  "macros": {
                    "kcal": 29.0,
                    "protein_g": 2.0,
                    "carbs_g": 6.5,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 128.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 128.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.3,
                    "carbs_g": 1.1,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.7,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 10.3,
                  "macros": {
                    "kcal": 58.0,
                    "protein_g": 1.9,
                    "carbs_g": 3.0,
                    "fat_g": 4.7
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 10.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 685.0,
                "protein_g": 78.6,
                "carbs_g": 13.0,
                "fat_g": 35.0
              }
            }
          }
        ],
        "total": {
          "kcal": 685.0,
          "protein_g": 78.6,
          "carbs_g": 13.0,
          "fat_g": 35.0
        },
        "delta_vs_target": {
          "kcal": -0.3,
          "protein_g": -0.2,
          "carbs_g": 0.02,
          "fat_g": -0.08
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D12",
        "name": "Bolonhesa sem massa + purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 364.0,
                  "macros": {
                    "kcal": 579.0,
                    "protein_g": 72.9,
                    "carbs_g": 0.0,
                    "fat_g": 29.8
                  },
                  "nutrition_basis_grams": 273.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 273.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 193.9,
                  "macros": {
                    "kcal": 32.0,
                    "protein_g": 2.4,
                    "carbs_g": 6.5,
                    "fat_g": 0.4
                  },
                  "nutrition_basis_grams": 190.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 190.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.3,
                    "carbs_g": 1.1,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.7,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 10.3,
                  "macros": {
                    "kcal": 58.0,
                    "protein_g": 1.9,
                    "carbs_g": 3.0,
                    "fat_g": 4.7
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 10.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 686.0,
                "protein_g": 78.7,
                "carbs_g": 13.0,
                "fat_g": 35.1
              }
            }
          }
        ],
        "total": {
          "kcal": 686.0,
          "protein_g": 78.7,
          "carbs_g": 13.0,
          "fat_g": 35.1
        },
        "delta_vs_target": {
          "kcal": 0.7,
          "protein_g": -0.1,
          "carbs_g": 0.02,
          "fat_g": 0.02
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D13",
        "name": "Kofta bovina com molho de iogurte e hortelã + brócolis assado + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D13",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 260.0,
                  "macros": {
                    "kcal": 411.0,
                    "protein_g": 70.2,
                    "carbs_g": 0.0,
                    "fat_g": 14.6
                  },
                  "nutrition_basis_grams": 195.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 195.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "Ground/molded patinho: USDA FBG ground beef ≤15% fat yield (0.75) used instead of intact round-steak yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 26.0,
                    "protein_g": 2.0,
                    "carbs_g": 0.9,
                    "fat_g": 1.5
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 110.0,
                  "macros": {
                    "kcal": 30.0,
                    "protein_g": 3.0,
                    "carbs_g": 4.9,
                    "fat_g": 0.6
                  },
                  "nutrition_basis_grams": 110.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 110.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 6.0,
                    "protein_g": 0.3,
                    "carbs_g": 1.4,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 18.6,
                  "macros": {
                    "kcal": 105.0,
                    "protein_g": 3.3,
                    "carbs_g": 5.3,
                    "fat_g": 8.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 18.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 11.0,
                  "macros": {
                    "kcal": 99.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 11.0
                  },
                  "nutrition_basis_grams": 11.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 682.0,
                "protein_g": 79.4,
                "carbs_g": 13.4,
                "fat_g": 36.3
              }
            }
          }
        ],
        "total": {
          "kcal": 682.0,
          "protein_g": 79.4,
          "carbs_g": 13.4,
          "fat_g": 36.3
        },
        "delta_vs_target": {
          "kcal": -3.3,
          "protein_g": 0.6,
          "carbs_g": 0.42,
          "fat_g": 1.22
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D14",
        "name": "Kofta bovina com molho de iogurte e hortelã + vagem com amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D14",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 270.7,
                  "macros": {
                    "kcal": 428.0,
                    "protein_g": 73.1,
                    "carbs_g": 0.0,
                    "fat_g": 15.2
                  },
                  "nutrition_basis_grams": 203.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 203.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "Ground/molded patinho: USDA FBG ground beef ≤15% fat yield (0.75) used instead of intact round-steak yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 26.0,
                    "protein_g": 2.0,
                    "carbs_g": 0.9,
                    "fat_g": 1.5
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 227.0,
                  "macros": {
                    "kcal": 46.0,
                    "protein_g": 3.2,
                    "carbs_g": 10.2,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 202.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 202.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 6.0,
                    "protein_g": 0.3,
                    "carbs_g": 1.4,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 19.0,
                  "macros": {
                    "kcal": 171.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 19.0
                  },
                  "nutrition_basis_grams": 19.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 682.0,
                "protein_g": 79.2,
                "carbs_g": 13.4,
                "fat_g": 36.1
              }
            }
          }
        ],
        "total": {
          "kcal": 682.0,
          "protein_g": 79.2,
          "carbs_g": 13.4,
          "fat_g": 36.1
        },
        "delta_vs_target": {
          "kcal": -3.3,
          "protein_g": 0.4,
          "carbs_g": 0.42,
          "fat_g": 1.02
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D16",
        "name": "Kofte marroquino ao tomate + vagem com mostarda em grãos + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D16",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 321.5,
                  "macros": {
                    "kcal": 441.0,
                    "protein_g": 75.2,
                    "carbs_g": 0.0,
                    "fat_g": 15.7
                  },
                  "nutrition_basis_grams": 209.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 209.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 167.4,
                  "macros": {
                    "kcal": 34.0,
                    "protein_g": 2.4,
                    "carbs_g": 7.5,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 149.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 149.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 70.0,
                  "macros": {
                    "kcal": 13.0,
                    "protein_g": 0.7,
                    "carbs_g": 2.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 70.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 25.0,
                  "macros": {
                    "kcal": 10.0,
                    "protein_g": 0.4,
                    "carbs_g": 2.3,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 25.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 180.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 20.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 683.0,
                "protein_g": 79.3,
                "carbs_g": 13.4,
                "fat_g": 36.1
              }
            }
          }
        ],
        "total": {
          "kcal": 683.0,
          "protein_g": 79.3,
          "carbs_g": 13.4,
          "fat_g": 36.1
        },
        "delta_vs_target": {
          "kcal": -2.3,
          "protein_g": 0.5,
          "carbs_g": 0.42,
          "fat_g": 1.02
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D18",
        "name": "Kofte marroquino ao tomate + brócolis assado + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D18",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 312.3,
                  "macros": {
                    "kcal": 428.0,
                    "protein_g": 73.1,
                    "carbs_g": 0.0,
                    "fat_g": 15.2
                  },
                  "nutrition_basis_grams": 203.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 203.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 100.0,
                  "macros": {
                    "kcal": 27.0,
                    "protein_g": 2.7,
                    "carbs_g": 4.4,
                    "fat_g": 0.5
                  },
                  "nutrition_basis_grams": 100.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 100.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 70.0,
                  "macros": {
                    "kcal": 13.0,
                    "protein_g": 0.7,
                    "carbs_g": 2.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 70.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 25.0,
                  "macros": {
                    "kcal": 10.0,
                    "protein_g": 0.4,
                    "carbs_g": 2.3,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 25.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 11.3,
                  "macros": {
                    "kcal": 64.0,
                    "protein_g": 2.0,
                    "carbs_g": 3.2,
                    "fat_g": 5.2
                  },
                  "nutrition_basis_grams": 11.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 11.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 135.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 15.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 682.0,
                "protein_g": 79.5,
                "carbs_g": 13.5,
                "fat_g": 36.1
              }
            }
          }
        ],
        "total": {
          "kcal": 682.0,
          "protein_g": 79.5,
          "carbs_g": 13.5,
          "fat_g": 36.1
        },
        "delta_vs_target": {
          "kcal": -3.3,
          "protein_g": 0.7,
          "carbs_g": 0.52,
          "fat_g": 1.02
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D19",
        "name": "Hambúrguer kofta caseiro + berinjela com tomate e iogurte + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D19",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 278.7,
                  "macros": {
                    "kcal": 441.0,
                    "protein_g": 75.2,
                    "carbs_g": 0.0,
                    "fat_g": 15.7
                  },
                  "nutrition_basis_grams": 209.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 209.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "Ground/molded patinho: USDA FBG ground beef ≤15% fat yield (0.75) used instead of intact round-steak yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 23.0,
                    "protein_g": 1.8,
                    "carbs_g": 0.9,
                    "fat_g": 1.4
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 157.4,
                  "macros": {
                    "kcal": 38.0,
                    "protein_g": 1.2,
                    "carbs_g": 9.2,
                    "fat_g": 0.4
                  },
                  "nutrition_basis_grams": 148.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 148.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.6,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 8.0,
                    "protein_g": 0.4,
                    "carbs_g": 1.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 162.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 680.0,
                "protein_g": 79.4,
                "carbs_g": 13.4,
                "fat_g": 35.6
              }
            }
          }
        ],
        "total": {
          "kcal": 680.0,
          "protein_g": 79.4,
          "carbs_g": 13.4,
          "fat_g": 35.6
        },
        "delta_vs_target": {
          "kcal": -5.3,
          "protein_g": 0.6,
          "carbs_g": 0.42,
          "fat_g": 0.52
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D21",
        "name": "Hambúrguer kofta caseiro + vagem com mostarda em grãos + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D21",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 277.3,
                  "macros": {
                    "kcal": 439.0,
                    "protein_g": 74.9,
                    "carbs_g": 0.0,
                    "fat_g": 15.6
                  },
                  "nutrition_basis_grams": 208.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 208.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "Ground/molded patinho: USDA FBG ground beef ≤15% fat yield (0.75) used instead of intact round-steak yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 237.1,
                  "macros": {
                    "kcal": 49.0,
                    "protein_g": 3.4,
                    "carbs_g": 10.6,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 211.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 211.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 8.0,
                    "protein_g": 0.4,
                    "carbs_g": 1.8,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 180.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 20.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 681.0,
                "protein_g": 79.3,
                "carbs_g": 13.3,
                "fat_g": 36.0
              }
            }
          }
        ],
        "total": {
          "kcal": 681.0,
          "protein_g": 79.3,
          "carbs_g": 13.3,
          "fat_g": 36.0
        },
        "delta_vs_target": {
          "kcal": -4.3,
          "protein_g": 0.5,
          "carbs_g": 0.32,
          "fat_g": 0.92
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D23",
        "name": "Almôndegas ao strogonoff + vagem ao limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D23",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 349.3,
                  "macros": {
                    "kcal": 555.0,
                    "protein_g": 70.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.6
                  },
                  "nutrition_basis_grams": 262.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 262.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 45.0,
                    "protein_g": 3.2,
                    "carbs_g": 0.2,
                    "fat_g": 3.5
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 10.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.4,
                    "carbs_g": 0.2,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 183.1,
                  "macros": {
                    "kcal": 37.0,
                    "protein_g": 2.6,
                    "carbs_g": 8.2,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 163.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 163.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.4,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 45.5,
                  "macros": {
                    "kcal": 8.0,
                    "protein_g": 0.5,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 20.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 4.1,
                  "macros": {
                    "kcal": 23.0,
                    "protein_g": 0.7,
                    "carbs_g": 1.2,
                    "fat_g": 1.9
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 4.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 684.0,
                "protein_g": 78.6,
                "carbs_g": 12.8,
                "fat_g": 34.7
              }
            }
          }
        ],
        "total": {
          "kcal": 684.0,
          "protein_g": 78.6,
          "carbs_g": 12.8,
          "fat_g": 34.7
        },
        "delta_vs_target": {
          "kcal": -1.3,
          "protein_g": -0.2,
          "carbs_g": -0.18,
          "fat_g": -0.38
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D24",
        "name": "Almôndegas ao strogonoff + berinjela com tomate e iogurte + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D24",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 368.0,
                  "macros": {
                    "kcal": 585.0,
                    "protein_g": 73.7,
                    "carbs_g": 0.0,
                    "fat_g": 30.1
                  },
                  "nutrition_basis_grams": 276.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 276.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 0.7,
                    "carbs_g": 0.3,
                    "fat_g": 0.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 117.0,
                  "macros": {
                    "kcal": 29.0,
                    "protein_g": 0.9,
                    "carbs_g": 6.8,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 110.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 110.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.6,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 2.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.4,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 45.5,
                  "macros": {
                    "kcal": 8.0,
                    "protein_g": 0.5,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 20.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 7.2,
                  "macros": {
                    "kcal": 41.0,
                    "protein_g": 1.3,
                    "carbs_g": 2.1,
                    "fat_g": 3.3
                  },
                  "nutrition_basis_grams": 7.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 7.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 686.0,
                "protein_g": 78.5,
                "carbs_g": 12.8,
                "fat_g": 34.4
              }
            }
          }
        ],
        "total": {
          "kcal": 686.0,
          "protein_g": 78.5,
          "carbs_g": 12.8,
          "fat_g": 34.4
        },
        "delta_vs_target": {
          "kcal": 0.7,
          "protein_g": -0.3,
          "carbs_g": -0.18,
          "fat_g": -0.68
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D25",
        "name": "Carne de panela leve + vagem com alho + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D25",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 365.3,
                  "macros": {
                    "kcal": 581.0,
                    "protein_g": 73.2,
                    "carbs_g": 0.0,
                    "fat_g": 29.9
                  },
                  "nutrition_basis_grams": 274.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 274.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 156.2,
                  "macros": {
                    "kcal": 32.0,
                    "protein_g": 2.2,
                    "carbs_g": 7.0,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 139.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 139.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.6,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.7,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 10.3,
                  "macros": {
                    "kcal": 58.0,
                    "protein_g": 1.9,
                    "carbs_g": 3.0,
                    "fat_g": 4.7
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 10.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 686.0,
                "protein_g": 78.7,
                "carbs_g": 13.0,
                "fat_g": 34.9
              }
            }
          }
        ],
        "total": {
          "kcal": 686.0,
          "protein_g": 78.7,
          "carbs_g": 13.0,
          "fat_g": 34.9
        },
        "delta_vs_target": {
          "kcal": 0.7,
          "protein_g": -0.1,
          "carbs_g": 0.02,
          "fat_g": -0.18
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D26",
        "name": "Carne de panela leve + purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D26",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 364.0,
                  "macros": {
                    "kcal": 579.0,
                    "protein_g": 72.9,
                    "carbs_g": 0.0,
                    "fat_g": 29.8
                  },
                  "nutrition_basis_grams": 273.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 273.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 211.2,
                  "macros": {
                    "kcal": 35.0,
                    "protein_g": 2.6,
                    "carbs_g": 7.1,
                    "fat_g": 0.4
                  },
                  "nutrition_basis_grams": 207.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 207.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.6,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.1,
                    "carbs_g": 0.7,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 10.3,
                  "macros": {
                    "kcal": 58.0,
                    "protein_g": 1.9,
                    "carbs_g": 3.0,
                    "fat_g": 4.7
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 10.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 687.0,
                "protein_g": 78.8,
                "carbs_g": 13.1,
                "fat_g": 35.0
              }
            }
          }
        ],
        "total": {
          "kcal": 687.0,
          "protein_g": 78.8,
          "carbs_g": 13.1,
          "fat_g": 35.0
        },
        "delta_vs_target": {
          "kcal": 1.7,
          "protein_g": 0.0,
          "carbs_g": 0.12,
          "fat_g": -0.08
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D28",
        "name": "Carne com cebola estilo pot-roast + vagem com amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D28",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 366.7,
                  "macros": {
                    "kcal": 583.0,
                    "protein_g": 73.4,
                    "carbs_g": 0.0,
                    "fat_g": 30.0
                  },
                  "nutrition_basis_grams": 275.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 275.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 149.4,
                  "macros": {
                    "kcal": 31.0,
                    "protein_g": 2.1,
                    "carbs_g": 6.7,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 133.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 133.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 7.0,
                    "protein_g": 0.3,
                    "carbs_g": 1.7,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 10.3,
                  "macros": {
                    "kcal": 58.0,
                    "protein_g": 1.9,
                    "carbs_g": 3.0,
                    "fat_g": 4.7
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 10.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 688.0,
                "protein_g": 78.8,
                "carbs_g": 13.1,
                "fat_g": 35.0
              }
            }
          }
        ],
        "total": {
          "kcal": 688.0,
          "protein_g": 78.8,
          "carbs_g": 13.1,
          "fat_g": 35.0
        },
        "delta_vs_target": {
          "kcal": 2.7,
          "protein_g": 0.0,
          "carbs_g": 0.12,
          "fat_g": -0.08
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D30",
        "name": "Carne com cebola estilo pot-roast + vagem com alho + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D30",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 366.7,
                  "macros": {
                    "kcal": 583.0,
                    "protein_g": 73.4,
                    "carbs_g": 0.0,
                    "fat_g": 30.0
                  },
                  "nutrition_basis_grams": 275.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 275.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 65.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 1.1,
                    "carbs_g": 1.7,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 65.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 149.4,
                  "macros": {
                    "kcal": 31.0,
                    "protein_g": 2.1,
                    "carbs_g": 6.7,
                    "fat_g": 0.2
                  },
                  "nutrition_basis_grams": 133.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 133.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 7.0,
                    "protein_g": 0.3,
                    "carbs_g": 1.7,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 10.3,
                  "macros": {
                    "kcal": 58.0,
                    "protein_g": 1.9,
                    "carbs_g": 3.0,
                    "fat_g": 4.7
                  },
                  "nutrition_basis_grams": 10.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 10.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 688.0,
                "protein_g": 78.8,
                "carbs_g": 13.1,
                "fat_g": 35.0
              }
            }
          }
        ],
        "total": {
          "kcal": 688.0,
          "protein_g": 78.8,
          "carbs_g": 13.1,
          "fat_g": 35.0
        },
        "delta_vs_target": {
          "kcal": 2.7,
          "protein_g": 0.0,
          "carbs_g": 0.12,
          "fat_g": -0.08
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D32",
        "name": "Frango churrasco de limão e alho + brócolis assado + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D32",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 311.0,
                  "macros": {
                    "kcal": 350.0,
                    "protein_g": 71.1,
                    "carbs_g": 0.0,
                    "fat_g": 7.2
                  },
                  "nutrition_basis_grams": 227.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 227.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 163.0,
                  "macros": {
                    "kcal": 44.0,
                    "protein_g": 4.4,
                    "carbs_g": 7.2,
                    "fat_g": 0.9
                  },
                  "nutrition_basis_grams": 163.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 163.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 18.6,
                  "macros": {
                    "kcal": 105.0,
                    "protein_g": 3.3,
                    "carbs_g": 5.3,
                    "fat_g": 8.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 18.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 180.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 20.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 684.0,
                "protein_g": 79.4,
                "carbs_g": 13.4,
                "fat_g": 36.7
              }
            }
          }
        ],
        "total": {
          "kcal": 684.0,
          "protein_g": 79.4,
          "carbs_g": 13.4,
          "fat_g": 36.7
        },
        "delta_vs_target": {
          "kcal": -1.3,
          "protein_g": 0.6,
          "carbs_g": 0.42,
          "fat_g": 1.62
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D33",
        "name": "Frango churrasco de limão e alho + vagem com amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D33",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 327.4,
                  "macros": {
                    "kcal": 368.0,
                    "protein_g": 74.8,
                    "carbs_g": 0.0,
                    "fat_g": 7.6
                  },
                  "nutrition_basis_grams": 239.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 239.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 278.7,
                  "macros": {
                    "kcal": 57.0,
                    "protein_g": 4.0,
                    "carbs_g": 12.5,
                    "fat_g": 0.4
                  },
                  "nutrition_basis_grams": 248.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 248.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 682.0,
                "protein_g": 79.4,
                "carbs_g": 13.4,
                "fat_g": 36.1
              }
            }
          }
        ],
        "total": {
          "kcal": 682.0,
          "protein_g": 79.4,
          "carbs_g": 13.4,
          "fat_g": 36.1
        },
        "delta_vs_target": {
          "kcal": -3.3,
          "protein_g": 0.6,
          "carbs_g": 0.42,
          "fat_g": 1.02
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D35",
        "name": "Paillard de frango com limão e ervas + vagem com mostarda em grãos + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D35",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 327.4,
                  "macros": {
                    "kcal": 368.0,
                    "protein_g": 74.8,
                    "carbs_g": 0.0,
                    "fat_g": 7.6
                  },
                  "nutrition_basis_grams": 239.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 239.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 278.7,
                  "macros": {
                    "kcal": 57.0,
                    "protein_g": 4.0,
                    "carbs_g": 12.5,
                    "fat_g": 0.4
                  },
                  "nutrition_basis_grams": 248.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 248.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 682.0,
                "protein_g": 79.4,
                "carbs_g": 13.4,
                "fat_g": 36.1
              }
            }
          }
        ],
        "total": {
          "kcal": 682.0,
          "protein_g": 79.4,
          "carbs_g": 13.4,
          "fat_g": 36.1
        },
        "delta_vs_target": {
          "kcal": -3.3,
          "protein_g": 0.6,
          "carbs_g": 0.42,
          "fat_g": 1.02
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D37",
        "name": "Frango ao limão e orégano + vagem ao limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D37",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 327.4,
                  "macros": {
                    "kcal": 368.0,
                    "protein_g": 74.8,
                    "carbs_g": 0.0,
                    "fat_g": 7.6
                  },
                  "nutrition_basis_grams": 239.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 239.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 278.7,
                  "macros": {
                    "kcal": 57.0,
                    "protein_g": 4.0,
                    "carbs_g": 12.5,
                    "fat_g": 0.4
                  },
                  "nutrition_basis_grams": 248.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 248.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 682.0,
                "protein_g": 79.4,
                "carbs_g": 13.4,
                "fat_g": 36.1
              }
            }
          }
        ],
        "total": {
          "kcal": 682.0,
          "protein_g": 79.4,
          "carbs_g": 13.4,
          "fat_g": 36.1
        },
        "delta_vs_target": {
          "kcal": -3.3,
          "protein_g": 0.6,
          "carbs_g": 0.42,
          "fat_g": 1.02
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D38",
        "name": "Frango ao limão e orégano + berinjela com tomate e iogurte + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D38",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 328.8,
                  "macros": {
                    "kcal": 370.0,
                    "protein_g": 75.1,
                    "carbs_g": 0.0,
                    "fat_g": 7.6
                  },
                  "nutrition_basis_grams": 240.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 240.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 23.0,
                    "protein_g": 1.8,
                    "carbs_g": 0.9,
                    "fat_g": 1.4
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 188.3,
                  "macros": {
                    "kcal": 46.0,
                    "protein_g": 1.4,
                    "carbs_g": 11.0,
                    "fat_g": 0.4
                  },
                  "nutrition_basis_grams": 177.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 177.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 3.0,
                    "protein_g": 0.2,
                    "carbs_g": 0.6,
                    "fat_g": 0.0
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 26.0,
                  "macros": {
                    "kcal": 234.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 26.0
                  },
                  "nutrition_basis_grams": 26.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 681.0,
                "protein_g": 79.1,
                "carbs_g": 13.4,
                "fat_g": 35.5
              }
            }
          }
        ],
        "total": {
          "kcal": 681.0,
          "protein_g": 79.1,
          "carbs_g": 13.4,
          "fat_g": 35.5
        },
        "delta_vs_target": {
          "kcal": -4.3,
          "protein_g": 0.3,
          "carbs_g": 0.42,
          "fat_g": 0.42
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D40",
        "name": "Frango tikka com iogurte zero lactose + vagem com amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D40",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 317.8,
                  "macros": {
                    "kcal": 357.0,
                    "protein_g": 72.6,
                    "carbs_g": 0.0,
                    "fat_g": 7.3
                  },
                  "nutrition_basis_grams": 232.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 232.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 31.0,
                    "protein_g": 2.5,
                    "carbs_g": 1.1,
                    "fat_g": 1.8
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 252.8,
                  "macros": {
                    "kcal": 52.0,
                    "protein_g": 3.6,
                    "carbs_g": 11.3,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 225.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 225.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 26.0,
                  "macros": {
                    "kcal": 234.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 26.0
                  },
                  "nutrition_basis_grams": 26.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 679.0,
                "protein_g": 79.3,
                "carbs_g": 13.3,
                "fat_g": 35.5
              }
            }
          }
        ],
        "total": {
          "kcal": 679.0,
          "protein_g": 79.3,
          "carbs_g": 13.3,
          "fat_g": 35.5
        },
        "delta_vs_target": {
          "kcal": -6.3,
          "protein_g": 0.5,
          "carbs_g": 0.32,
          "fat_g": 0.42
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D42",
        "name": "Frango tikka com iogurte zero lactose + vagem com mostarda em grãos + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D42",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 317.8,
                  "macros": {
                    "kcal": 357.0,
                    "protein_g": 72.6,
                    "carbs_g": 0.0,
                    "fat_g": 7.3
                  },
                  "nutrition_basis_grams": 232.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 232.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 60.0,
                  "macros": {
                    "kcal": 31.0,
                    "protein_g": 2.5,
                    "carbs_g": 1.1,
                    "fat_g": 1.8
                  },
                  "nutrition_basis_grams": 60.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 252.8,
                  "macros": {
                    "kcal": 52.0,
                    "protein_g": 3.6,
                    "carbs_g": 11.3,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 225.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 225.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 26.0,
                  "macros": {
                    "kcal": 234.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 26.0
                  },
                  "nutrition_basis_grams": 26.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 679.0,
                "protein_g": 79.3,
                "carbs_g": 13.3,
                "fat_g": 35.5
              }
            }
          }
        ],
        "total": {
          "kcal": 679.0,
          "protein_g": 79.3,
          "carbs_g": 13.3,
          "fat_g": 35.5
        },
        "delta_vs_target": {
          "kcal": -6.3,
          "protein_g": 0.5,
          "carbs_g": 0.32,
          "fat_g": 0.42
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D44",
        "name": "Frango souvlaki + vagem com alho + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D44",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 320.5,
                  "macros": {
                    "kcal": 360.0,
                    "protein_g": 73.2,
                    "carbs_g": 0.0,
                    "fat_g": 7.4
                  },
                  "nutrition_basis_grams": 234.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 234.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 45.0,
                  "macros": {
                    "kcal": 23.0,
                    "protein_g": 1.8,
                    "carbs_g": 0.9,
                    "fat_g": 1.4
                  },
                  "nutrition_basis_grams": 45.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 259.6,
                  "macros": {
                    "kcal": 53.0,
                    "protein_g": 3.7,
                    "carbs_g": 11.6,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 231.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 231.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 27.0,
                  "macros": {
                    "kcal": 243.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 27.0
                  },
                  "nutrition_basis_grams": 27.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 684.0,
                "protein_g": 79.3,
                "carbs_g": 13.4,
                "fat_g": 36.2
              }
            }
          }
        ],
        "total": {
          "kcal": 684.0,
          "protein_g": 79.3,
          "carbs_g": 13.4,
          "fat_g": 36.2
        },
        "delta_vs_target": {
          "kcal": -1.3,
          "protein_g": 0.5,
          "carbs_g": 0.42,
          "fat_g": 1.12
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D45",
        "name": "Frango souvlaki + purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D45",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 312.3,
                  "macros": {
                    "kcal": 351.0,
                    "protein_g": 71.4,
                    "carbs_g": 0.0,
                    "fat_g": 7.2
                  },
                  "nutrition_basis_grams": 228.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 228.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 80.0,
                  "macros": {
                    "kcal": 41.0,
                    "protein_g": 3.3,
                    "carbs_g": 1.5,
                    "fat_g": 2.4
                  },
                  "nutrition_basis_grams": 80.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 327.6,
                  "macros": {
                    "kcal": 55.0,
                    "protein_g": 4.1,
                    "carbs_g": 10.9,
                    "fat_g": 0.6
                  },
                  "nutrition_basis_grams": 321.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 321.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 26.0,
                  "macros": {
                    "kcal": 234.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 26.0
                  },
                  "nutrition_basis_grams": 26.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 686.0,
                "protein_g": 79.4,
                "carbs_g": 13.3,
                "fat_g": 36.3
              }
            }
          }
        ],
        "total": {
          "kcal": 686.0,
          "protein_g": 79.4,
          "carbs_g": 13.3,
          "fat_g": 36.3
        },
        "delta_vs_target": {
          "kcal": 0.7,
          "protein_g": 0.6,
          "carbs_g": 0.32,
          "fat_g": 1.22
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D46",
        "name": "Frango gyros + brócolis assado + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D46",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 305.5,
                  "macros": {
                    "kcal": 343.0,
                    "protein_g": 69.8,
                    "carbs_g": 0.0,
                    "fat_g": 7.0
                  },
                  "nutrition_basis_grams": 223.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 223.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 26.0,
                    "protein_g": 2.0,
                    "carbs_g": 0.9,
                    "fat_g": 1.5
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 141.0,
                  "macros": {
                    "kcal": 38.0,
                    "protein_g": 3.8,
                    "carbs_g": 6.3,
                    "fat_g": 0.8
                  },
                  "nutrition_basis_grams": 141.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 141.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 18.6,
                  "macros": {
                    "kcal": 105.0,
                    "protein_g": 3.3,
                    "carbs_g": 5.3,
                    "fat_g": 8.5
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 18.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 162.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 679.0,
                "protein_g": 79.5,
                "carbs_g": 13.4,
                "fat_g": 35.9
              }
            }
          }
        ],
        "total": {
          "kcal": 679.0,
          "protein_g": 79.5,
          "carbs_g": 13.4,
          "fat_g": 35.9
        },
        "delta_vs_target": {
          "kcal": -6.3,
          "protein_g": 0.7,
          "carbs_g": 0.42,
          "fat_g": 0.82
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D47",
        "name": "Frango gyros + vagem com amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D47",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 319.2,
                  "macros": {
                    "kcal": 359.0,
                    "protein_g": 72.9,
                    "carbs_g": 0.0,
                    "fat_g": 7.4
                  },
                  "nutrition_basis_grams": 233.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 233.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 26.0,
                    "protein_g": 2.0,
                    "carbs_g": 0.9,
                    "fat_g": 1.5
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 257.3,
                  "macros": {
                    "kcal": 53.0,
                    "protein_g": 3.7,
                    "carbs_g": 11.5,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 229.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 229.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 27.0,
                  "macros": {
                    "kcal": 243.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 27.0
                  },
                  "nutrition_basis_grams": 27.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 686.0,
                "protein_g": 79.2,
                "carbs_g": 13.3,
                "fat_g": 36.3
              }
            }
          }
        ],
        "total": {
          "kcal": 686.0,
          "protein_g": 79.2,
          "carbs_g": 13.3,
          "fat_g": 36.3
        },
        "delta_vs_target": {
          "kcal": 0.7,
          "protein_g": 0.4,
          "carbs_g": 0.32,
          "fat_g": 1.22
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D50",
        "name": "Frango jerk + vagem com mostarda em grãos + folhas",
        "recipe_uses": [
          {
            "recipe_id": "LEG-D50",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 327.4,
                  "macros": {
                    "kcal": 368.0,
                    "protein_g": 74.8,
                    "carbs_g": 0.0,
                    "fat_g": 7.6
                  },
                  "nutrition_basis_grams": 239.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 239.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 5.0,
                    "protein_g": 0.6,
                    "carbs_g": 0.9,
                    "fat_g": 0.1
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 278.7,
                  "macros": {
                    "kcal": 57.0,
                    "protein_g": 4.0,
                    "carbs_g": 12.5,
                    "fat_g": 0.4
                  },
                  "nutrition_basis_grams": 248.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 248.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 682.0,
                "protein_g": 79.4,
                "carbs_g": 13.4,
                "fat_g": 36.1
              }
            }
          }
        ],
        "total": {
          "kcal": 682.0,
          "protein_g": 79.4,
          "carbs_g": 13.4,
          "fat_g": 36.1
        },
        "delta_vs_target": {
          "kcal": -3.3,
          "protein_g": 0.6,
          "carbs_g": 0.42,
          "fat_g": 1.02
        },
        "origin": "legacy_docx"
      },
      {
        "id": "D032",
        "name": "Strogonoff bovino leve + Purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 90.9,
                  "macros": {
                    "kcal": 15.2,
                    "protein_g": 1.05,
                    "carbs_g": 1.8,
                    "fat_g": 0.17
                  },
                  "nutrition_basis_grams": 40.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 40.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 361.3,
                  "macros": {
                    "kcal": 574.52,
                    "protein_g": 72.36,
                    "carbs_g": 0.0,
                    "fat_g": 29.54
                  },
                  "nutrition_basis_grams": 271.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 271.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 633.37,
                "protein_g": 74.02,
                "carbs_g": 2.08,
                "fat_g": 34.16
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 285.7,
                  "macros": {
                    "kcal": 47.6,
                    "protein_g": 3.58,
                    "carbs_g": 9.55,
                    "fat_g": 0.56
                  },
                  "nutrition_basis_grams": 280.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 280.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 47.6,
                "protein_g": 3.58,
                "carbs_g": 9.55,
                "fat_g": 0.56
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 687.82,
          "protein_g": 78.45,
          "carbs_g": 12.9,
          "fat_g": 34.79
        },
        "delta_vs_target": {
          "kcal": 2.52,
          "protein_g": -0.35,
          "carbs_g": -0.08,
          "fat_g": -0.29
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D033",
        "name": "Strogonoff bovino leve + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 90.9,
                  "macros": {
                    "kcal": 15.2,
                    "protein_g": 1.05,
                    "carbs_g": 1.8,
                    "fat_g": 0.17
                  },
                  "nutrition_basis_grams": 40.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 40.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 362.7,
                  "macros": {
                    "kcal": 576.64,
                    "protein_g": 72.62,
                    "carbs_g": 0.0,
                    "fat_g": 29.65
                  },
                  "nutrition_basis_grams": 272.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 272.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 1.0,
                  "macros": {
                    "kcal": 9.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 1.0
                  },
                  "nutrition_basis_grams": 1.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 608.49,
                "protein_g": 74.28,
                "carbs_g": 2.08,
                "fat_g": 31.27
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 174.2,
                  "macros": {
                    "kcal": 35.65,
                    "protein_g": 2.48,
                    "carbs_g": 7.81,
                    "fat_g": 0.23
                  },
                  "nutrition_basis_grams": 155.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 155.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 70.51,
                "protein_g": 3.6,
                "carbs_g": 9.58,
                "fat_g": 3.07
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 685.85,
          "protein_g": 78.73,
          "carbs_g": 12.93,
          "fat_g": 34.41
        },
        "delta_vs_target": {
          "kcal": 0.55,
          "protein_g": -0.07,
          "carbs_g": -0.05,
          "fat_g": -0.67
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D034",
        "name": "Strogonoff bovino leve + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 90.9,
                  "macros": {
                    "kcal": 15.2,
                    "protein_g": 1.05,
                    "carbs_g": 1.8,
                    "fat_g": 0.17
                  },
                  "nutrition_basis_grams": 40.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 40.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 353.3,
                  "macros": {
                    "kcal": 561.8,
                    "protein_g": 70.75,
                    "carbs_g": 0.0,
                    "fat_g": 28.89
                  },
                  "nutrition_basis_grams": 265.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 265.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 620.65,
                "protein_g": 72.41,
                "carbs_g": 2.08,
                "fat_g": 33.51
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 215.0,
                  "macros": {
                    "kcal": 58.05,
                    "protein_g": 5.83,
                    "carbs_g": 9.55,
                    "fat_g": 1.16
                  },
                  "nutrition_basis_grams": 215.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 215.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 58.05,
                "protein_g": 5.83,
                "carbs_g": 9.55,
                "fat_g": 1.16
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 685.55,
          "protein_g": 79.09,
          "carbs_g": 12.9,
          "fat_g": 34.74
        },
        "delta_vs_target": {
          "kcal": 0.25,
          "protein_g": 0.29,
          "carbs_g": -0.08,
          "fat_g": -0.34
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D035",
        "name": "Strogonoff bovino leve + Arroz de couve-flor com cominho e coentro + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 90.9,
                  "macros": {
                    "kcal": 15.2,
                    "protein_g": 1.05,
                    "carbs_g": 1.8,
                    "fat_g": 0.17
                  },
                  "nutrition_basis_grams": 40.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 40.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 361.3,
                  "macros": {
                    "kcal": 574.52,
                    "protein_g": 72.36,
                    "carbs_g": 0.0,
                    "fat_g": 29.54
                  },
                  "nutrition_basis_grams": 271.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 271.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 633.37,
                "protein_g": 74.02,
                "carbs_g": 2.08,
                "fat_g": 34.16
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 285.7,
                  "macros": {
                    "kcal": 47.6,
                    "protein_g": 3.58,
                    "carbs_g": 9.55,
                    "fat_g": 0.56
                  },
                  "nutrition_basis_grams": 280.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 280.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 47.6,
                "protein_g": 3.58,
                "carbs_g": 9.55,
                "fat_g": 0.56
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 687.82,
          "protein_g": 78.45,
          "carbs_g": 12.9,
          "fat_g": 34.79
        },
        "delta_vs_target": {
          "kcal": 2.52,
          "protein_g": -0.35,
          "carbs_g": -0.08,
          "fat_g": -0.29
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D036",
        "name": "Strogonoff bovino leve + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 90.9,
                  "macros": {
                    "kcal": 15.2,
                    "protein_g": 1.05,
                    "carbs_g": 1.8,
                    "fat_g": 0.17
                  },
                  "nutrition_basis_grams": 40.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 40.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 365.3,
                  "macros": {
                    "kcal": 580.88,
                    "protein_g": 73.16,
                    "carbs_g": 0.0,
                    "fat_g": 29.87
                  },
                  "nutrition_basis_grams": 274.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 274.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 639.73,
                "protein_g": 74.82,
                "carbs_g": 2.08,
                "fat_g": 34.49
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 857.1,
                  "macros": {
                    "kcal": 40.8,
                    "protein_g": 2.9,
                    "carbs_g": 9.55,
                    "fat_g": 0.34
                  },
                  "nutrition_basis_grams": 240.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 240.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 40.8,
                "protein_g": 2.9,
                "carbs_g": 9.55,
                "fat_g": 0.34
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 687.38,
          "protein_g": 78.57,
          "carbs_g": 12.9,
          "fat_g": 34.9
        },
        "delta_vs_target": {
          "kcal": 2.08,
          "protein_g": -0.23,
          "carbs_g": -0.08,
          "fat_g": -0.18
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D037",
        "name": "Strogonoff bovino leve + Vagem com limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 90.9,
                  "macros": {
                    "kcal": 15.2,
                    "protein_g": 1.05,
                    "carbs_g": 1.8,
                    "fat_g": 0.17
                  },
                  "nutrition_basis_grams": 40.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 40.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 353.3,
                  "macros": {
                    "kcal": 561.8,
                    "protein_g": 70.75,
                    "carbs_g": 0.0,
                    "fat_g": 28.89
                  },
                  "nutrition_basis_grams": 265.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 265.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 3.0,
                  "macros": {
                    "kcal": 27.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 3.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 611.65,
                "protein_g": 72.41,
                "carbs_g": 2.08,
                "fat_g": 32.51
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 210.1,
                  "macros": {
                    "kcal": 43.01,
                    "protein_g": 2.99,
                    "carbs_g": 9.42,
                    "fat_g": 0.28
                  },
                  "nutrition_basis_grams": 187.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 187.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 69.89,
                "protein_g": 4.9,
                "carbs_g": 9.57,
                "fat_g": 2.38
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 688.39,
          "protein_g": 78.16,
          "carbs_g": 12.92,
          "fat_g": 34.96
        },
        "delta_vs_target": {
          "kcal": 3.09,
          "protein_g": -0.64,
          "carbs_g": -0.06,
          "fat_g": -0.12
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D038",
        "name": "Strogonoff bovino leve + Brócolis com ervas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 90.9,
                  "macros": {
                    "kcal": 15.2,
                    "protein_g": 1.05,
                    "carbs_g": 1.8,
                    "fat_g": 0.17
                  },
                  "nutrition_basis_grams": 40.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 40.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 353.3,
                  "macros": {
                    "kcal": 561.8,
                    "protein_g": 70.75,
                    "carbs_g": 0.0,
                    "fat_g": 28.89
                  },
                  "nutrition_basis_grams": 265.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 265.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 620.65,
                "protein_g": 72.41,
                "carbs_g": 2.08,
                "fat_g": 33.51
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 215.0,
                  "macros": {
                    "kcal": 58.05,
                    "protein_g": 5.83,
                    "carbs_g": 9.55,
                    "fat_g": 1.16
                  },
                  "nutrition_basis_grams": 215.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 215.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 58.05,
                "protein_g": 5.83,
                "carbs_g": 9.55,
                "fat_g": 1.16
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 685.55,
          "protein_g": 79.09,
          "carbs_g": 12.9,
          "fat_g": 34.74
        },
        "delta_vs_target": {
          "kcal": 0.25,
          "protein_g": 0.29,
          "carbs_g": -0.08,
          "fat_g": -0.34
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D039",
        "name": "Bife com chimichurri + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 304.6,
                  "macros": {
                    "kcal": 417.78,
                    "protein_g": 71.28,
                    "carbs_g": 0.0,
                    "fat_g": 14.85
                  },
                  "nutrition_basis_grams": 198.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 198.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 180.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 20.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 597.78,
                "protein_g": 71.28,
                "carbs_g": 0.0,
                "fat_g": 34.85
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 269.0,
                  "macros": {
                    "kcal": 72.63,
                    "protein_g": 7.29,
                    "carbs_g": 11.94,
                    "fat_g": 1.45
                  },
                  "nutrition_basis_grams": 269.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 269.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 72.63,
                "protein_g": 7.29,
                "carbs_g": 11.94,
                "fat_g": 1.45
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 677.26,
          "protein_g": 79.42,
          "carbs_g": 13.21,
          "fat_g": 36.37
        },
        "delta_vs_target": {
          "kcal": -8.04,
          "protein_g": 0.62,
          "carbs_g": 0.23,
          "fat_g": 1.29
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D040",
        "name": "Bife com chimichurri + Couve-flor assada com especiarias + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 318.5,
                  "macros": {
                    "kcal": 436.77,
                    "protein_g": 74.52,
                    "carbs_g": 0.0,
                    "fat_g": 15.52
                  },
                  "nutrition_basis_grams": 207.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 207.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 180.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 20.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 616.77,
                "protein_g": 74.52,
                "carbs_g": 0.0,
                "fat_g": 35.52
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 326.5,
                  "macros": {
                    "kcal": 54.4,
                    "protein_g": 4.1,
                    "carbs_g": 10.91,
                    "fat_g": 0.64
                  },
                  "nutrition_basis_grams": 320.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 320.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 54.4,
                "protein_g": 4.1,
                "carbs_g": 10.91,
                "fat_g": 0.64
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 678.02,
          "protein_g": 79.47,
          "carbs_g": 12.18,
          "fat_g": 36.23
        },
        "delta_vs_target": {
          "kcal": -7.28,
          "protein_g": 0.67,
          "carbs_g": -0.8,
          "fat_g": 1.15
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D041",
        "name": "Bife com chimichurri + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 315.4,
                  "macros": {
                    "kcal": 432.55,
                    "protein_g": 73.8,
                    "carbs_g": 0.0,
                    "fat_g": 15.37
                  },
                  "nutrition_basis_grams": 205.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 205.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 162.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 594.55,
                "protein_g": 73.8,
                "carbs_g": 0.0,
                "fat_g": 33.37
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 223.6,
                  "macros": {
                    "kcal": 45.77,
                    "protein_g": 3.18,
                    "carbs_g": 10.03,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 199.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 199.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 80.63,
                "protein_g": 4.3,
                "carbs_g": 11.8,
                "fat_g": 3.14
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 682.03,
          "protein_g": 78.95,
          "carbs_g": 13.07,
          "fat_g": 36.58
        },
        "delta_vs_target": {
          "kcal": -3.27,
          "protein_g": 0.15,
          "carbs_g": 0.09,
          "fat_g": 1.5
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D042",
        "name": "Bife com chimichurri + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 310.8,
                  "macros": {
                    "kcal": 426.22,
                    "protein_g": 72.72,
                    "carbs_g": 0.0,
                    "fat_g": 15.15
                  },
                  "nutrition_basis_grams": 202.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 202.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 19.0,
                  "macros": {
                    "kcal": 171.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 19.0
                  },
                  "nutrition_basis_grams": 19.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 597.22,
                "protein_g": 72.72,
                "carbs_g": 0.0,
                "fat_g": 34.15
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 1050.0,
                  "macros": {
                    "kcal": 49.98,
                    "protein_g": 3.56,
                    "carbs_g": 11.7,
                    "fat_g": 0.41
                  },
                  "nutrition_basis_grams": 294.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 294.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 76.86,
                "protein_g": 5.47,
                "carbs_g": 11.85,
                "fat_g": 2.51
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 680.93,
          "protein_g": 79.04,
          "carbs_g": 13.12,
          "fat_g": 36.73
        },
        "delta_vs_target": {
          "kcal": -4.37,
          "protein_g": 0.24,
          "carbs_g": 0.14,
          "fat_g": 1.65
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D043",
        "name": "Bife com chimichurri + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 321.5,
                  "macros": {
                    "kcal": 440.99,
                    "protein_g": 75.24,
                    "carbs_g": 0.0,
                    "fat_g": 15.67
                  },
                  "nutrition_basis_grams": 209.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 209.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 180.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 20.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 620.99,
                "protein_g": 75.24,
                "carbs_g": 0.0,
                "fat_g": 35.67
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 1064.3,
                  "macros": {
                    "kcal": 50.66,
                    "protein_g": 3.61,
                    "carbs_g": 11.86,
                    "fat_g": 0.42
                  },
                  "nutrition_basis_grams": 298.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 298.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 50.66,
                "protein_g": 3.61,
                "carbs_g": 11.86,
                "fat_g": 0.42
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 678.5,
          "protein_g": 79.7,
          "carbs_g": 13.13,
          "fat_g": 36.16
        },
        "delta_vs_target": {
          "kcal": -6.8,
          "protein_g": 0.9,
          "carbs_g": 0.15,
          "fat_g": 1.08
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D044",
        "name": "Bife com chimichurri + Vagem com limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 312.3,
                  "macros": {
                    "kcal": 428.33,
                    "protein_g": 73.08,
                    "carbs_g": 0.0,
                    "fat_g": 15.22
                  },
                  "nutrition_basis_grams": 203.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 203.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 162.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 590.33,
                "protein_g": 73.08,
                "carbs_g": 0.0,
                "fat_g": 33.22
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 262.9,
                  "macros": {
                    "kcal": 53.82,
                    "protein_g": 3.74,
                    "carbs_g": 11.79,
                    "fat_g": 0.35
                  },
                  "nutrition_basis_grams": 234.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 234.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 80.7,
                "protein_g": 5.65,
                "carbs_g": 11.94,
                "fat_g": 2.45
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 677.88,
          "protein_g": 79.58,
          "carbs_g": 13.21,
          "fat_g": 35.74
        },
        "delta_vs_target": {
          "kcal": -7.42,
          "protein_g": 0.78,
          "carbs_g": 0.23,
          "fat_g": 0.66
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D045",
        "name": "Bife com chimichurri + Berinjela assada com tomate e manjericão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 329.2,
                  "macros": {
                    "kcal": 451.54,
                    "protein_g": 77.04,
                    "carbs_g": 0.0,
                    "fat_g": 16.05
                  },
                  "nutrition_basis_grams": 214.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 214.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 19.0,
                  "macros": {
                    "kcal": 171.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 19.0
                  },
                  "nutrition_basis_grams": 19.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 622.54,
                "protein_g": 77.04,
                "carbs_g": 0.0,
                "fat_g": 35.05
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.4,
                    "protein_g": 0.31,
                    "carbs_g": 1.15,
                    "fat_g": 0.05
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 184.0,
                  "macros": {
                    "kcal": 44.98,
                    "protein_g": 1.37,
                    "carbs_g": 10.73,
                    "fat_g": 0.42
                  },
                  "nutrition_basis_grams": 173.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 173.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 50.38,
                "protein_g": 1.68,
                "carbs_g": 11.88,
                "fat_g": 0.47
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 679.77,
          "protein_g": 79.57,
          "carbs_g": 13.15,
          "fat_g": 35.59
        },
        "delta_vs_target": {
          "kcal": -5.53,
          "protein_g": 0.77,
          "carbs_g": 0.17,
          "fat_g": 0.51
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D046",
        "name": "Bife ao miso + Vagem com gergelim e gengibre + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 320.0,
                  "macros": {
                    "kcal": 438.88,
                    "protein_g": 74.88,
                    "carbs_g": 0.0,
                    "fat_g": 15.6
                  },
                  "nutrition_basis_grams": 208.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 208.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 180.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 20.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 618.88,
                "protein_g": 74.88,
                "carbs_g": 0.0,
                "fat_g": 35.6
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 264.0,
                  "macros": {
                    "kcal": 54.05,
                    "protein_g": 3.76,
                    "carbs_g": 11.84,
                    "fat_g": 0.35
                  },
                  "nutrition_basis_grams": 235.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 235.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 54.05,
                "protein_g": 3.76,
                "carbs_g": 11.84,
                "fat_g": 0.35
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 679.78,
          "protein_g": 79.49,
          "carbs_g": 13.11,
          "fat_g": 36.02
        },
        "delta_vs_target": {
          "kcal": -5.52,
          "protein_g": 0.69,
          "carbs_g": 0.13,
          "fat_g": 0.94
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D047",
        "name": "Bife ao miso + Arroz de couve-flor com cominho e coentro + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 318.5,
                  "macros": {
                    "kcal": 436.77,
                    "protein_g": 74.52,
                    "carbs_g": 0.0,
                    "fat_g": 15.52
                  },
                  "nutrition_basis_grams": 207.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 207.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 180.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 20.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 616.77,
                "protein_g": 74.52,
                "carbs_g": 0.0,
                "fat_g": 35.52
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 326.5,
                  "macros": {
                    "kcal": 54.4,
                    "protein_g": 4.1,
                    "carbs_g": 10.91,
                    "fat_g": 0.64
                  },
                  "nutrition_basis_grams": 320.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 320.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 54.4,
                "protein_g": 4.1,
                "carbs_g": 10.91,
                "fat_g": 0.64
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 678.02,
          "protein_g": 79.47,
          "carbs_g": 12.18,
          "fat_g": 36.23
        },
        "delta_vs_target": {
          "kcal": -7.28,
          "protein_g": 0.67,
          "carbs_g": -0.8,
          "fat_g": 1.15
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D048",
        "name": "Bife ao miso + Brócolis com ervas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 304.6,
                  "macros": {
                    "kcal": 417.78,
                    "protein_g": 71.28,
                    "carbs_g": 0.0,
                    "fat_g": 14.85
                  },
                  "nutrition_basis_grams": 198.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 198.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 180.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 20.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 597.78,
                "protein_g": 71.28,
                "carbs_g": 0.0,
                "fat_g": 34.85
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 269.0,
                  "macros": {
                    "kcal": 72.63,
                    "protein_g": 7.29,
                    "carbs_g": 11.94,
                    "fat_g": 1.45
                  },
                  "nutrition_basis_grams": 269.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 269.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 72.63,
                "protein_g": 7.29,
                "carbs_g": 11.94,
                "fat_g": 1.45
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 677.26,
          "protein_g": 79.42,
          "carbs_g": 13.21,
          "fat_g": 36.37
        },
        "delta_vs_target": {
          "kcal": -8.04,
          "protein_g": 0.62,
          "carbs_g": 0.23,
          "fat_g": 1.29
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D049",
        "name": "Bife ao miso + Couve-flor assada com especiarias + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 318.5,
                  "macros": {
                    "kcal": 436.77,
                    "protein_g": 74.52,
                    "carbs_g": 0.0,
                    "fat_g": 15.52
                  },
                  "nutrition_basis_grams": 207.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 207.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 180.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 20.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 616.77,
                "protein_g": 74.52,
                "carbs_g": 0.0,
                "fat_g": 35.52
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 326.5,
                  "macros": {
                    "kcal": 54.4,
                    "protein_g": 4.1,
                    "carbs_g": 10.91,
                    "fat_g": 0.64
                  },
                  "nutrition_basis_grams": 320.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 320.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 54.4,
                "protein_g": 4.1,
                "carbs_g": 10.91,
                "fat_g": 0.64
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 678.02,
          "protein_g": 79.47,
          "carbs_g": 12.18,
          "fat_g": 36.23
        },
        "delta_vs_target": {
          "kcal": -7.28,
          "protein_g": 0.67,
          "carbs_g": -0.8,
          "fat_g": 1.15
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D050",
        "name": "Bife ao miso + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 315.4,
                  "macros": {
                    "kcal": 432.55,
                    "protein_g": 73.8,
                    "carbs_g": 0.0,
                    "fat_g": 15.37
                  },
                  "nutrition_basis_grams": 205.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 205.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 162.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 594.55,
                "protein_g": 73.8,
                "carbs_g": 0.0,
                "fat_g": 33.37
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 223.6,
                  "macros": {
                    "kcal": 45.77,
                    "protein_g": 3.18,
                    "carbs_g": 10.03,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 199.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 199.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 80.63,
                "protein_g": 4.3,
                "carbs_g": 11.8,
                "fat_g": 3.14
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 682.03,
          "protein_g": 78.95,
          "carbs_g": 13.07,
          "fat_g": 36.58
        },
        "delta_vs_target": {
          "kcal": -3.27,
          "protein_g": 0.15,
          "carbs_g": 0.09,
          "fat_g": 1.5
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D051",
        "name": "Bife ao miso + Cogumelos ao alho e ervas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 303.1,
                  "macros": {
                    "kcal": 415.67,
                    "protein_g": 70.92,
                    "carbs_g": 0.0,
                    "fat_g": 14.78
                  },
                  "nutrition_basis_grams": 197.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 197.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 19.0,
                  "macros": {
                    "kcal": 171.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 19.0
                  },
                  "nutrition_basis_grams": 19.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 586.67,
                "protein_g": 70.92,
                "carbs_g": 0.0,
                "fat_g": 33.78
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 577.3,
                  "macros": {
                    "kcal": 96.52,
                    "protein_g": 6.68,
                    "carbs_g": 11.46,
                    "fat_g": 1.09
                  },
                  "nutrition_basis_grams": 254.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 254.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 96.52,
                "protein_g": 6.68,
                "carbs_g": 11.46,
                "fat_g": 1.09
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 690.04,
          "protein_g": 78.45,
          "carbs_g": 12.73,
          "fat_g": 34.94
        },
        "delta_vs_target": {
          "kcal": 4.74,
          "protein_g": -0.35,
          "carbs_g": -0.25,
          "fat_g": -0.14
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D052",
        "name": "Bife ao miso + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 321.5,
                  "macros": {
                    "kcal": 440.99,
                    "protein_g": 75.24,
                    "carbs_g": 0.0,
                    "fat_g": 15.67
                  },
                  "nutrition_basis_grams": 209.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 209.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 180.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 20.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 620.99,
                "protein_g": 75.24,
                "carbs_g": 0.0,
                "fat_g": 35.67
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 1064.3,
                  "macros": {
                    "kcal": 50.66,
                    "protein_g": 3.61,
                    "carbs_g": 11.86,
                    "fat_g": 0.42
                  },
                  "nutrition_basis_grams": 298.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 298.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 50.66,
                "protein_g": 3.61,
                "carbs_g": 11.86,
                "fat_g": 0.42
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 678.5,
          "protein_g": 79.7,
          "carbs_g": 13.13,
          "fat_g": 36.16
        },
        "delta_vs_target": {
          "kcal": -6.8,
          "protein_g": 0.9,
          "carbs_g": 0.15,
          "fat_g": 1.08
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D053",
        "name": "Bife simples na chapa + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 304.6,
                  "macros": {
                    "kcal": 417.78,
                    "protein_g": 71.28,
                    "carbs_g": 0.0,
                    "fat_g": 14.85
                  },
                  "nutrition_basis_grams": 198.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 198.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 180.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 20.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 597.78,
                "protein_g": 71.28,
                "carbs_g": 0.0,
                "fat_g": 34.85
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 269.0,
                  "macros": {
                    "kcal": 72.63,
                    "protein_g": 7.29,
                    "carbs_g": 11.94,
                    "fat_g": 1.45
                  },
                  "nutrition_basis_grams": 269.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 269.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 72.63,
                "protein_g": 7.29,
                "carbs_g": 11.94,
                "fat_g": 1.45
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 677.26,
          "protein_g": 79.42,
          "carbs_g": 13.21,
          "fat_g": 36.37
        },
        "delta_vs_target": {
          "kcal": -8.04,
          "protein_g": 0.62,
          "carbs_g": 0.23,
          "fat_g": 1.29
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D054",
        "name": "Bife simples na chapa + Purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 318.5,
                  "macros": {
                    "kcal": 436.77,
                    "protein_g": 74.52,
                    "carbs_g": 0.0,
                    "fat_g": 15.52
                  },
                  "nutrition_basis_grams": 207.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 207.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 180.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 20.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 616.77,
                "protein_g": 74.52,
                "carbs_g": 0.0,
                "fat_g": 35.52
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 326.5,
                  "macros": {
                    "kcal": 54.4,
                    "protein_g": 4.1,
                    "carbs_g": 10.91,
                    "fat_g": 0.64
                  },
                  "nutrition_basis_grams": 320.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 320.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 54.4,
                "protein_g": 4.1,
                "carbs_g": 10.91,
                "fat_g": 0.64
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 678.02,
          "protein_g": 79.47,
          "carbs_g": 12.18,
          "fat_g": 36.23
        },
        "delta_vs_target": {
          "kcal": -7.28,
          "protein_g": 0.67,
          "carbs_g": -0.8,
          "fat_g": 1.15
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D055",
        "name": "Bife simples na chapa + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 315.4,
                  "macros": {
                    "kcal": 432.55,
                    "protein_g": 73.8,
                    "carbs_g": 0.0,
                    "fat_g": 15.37
                  },
                  "nutrition_basis_grams": 205.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 205.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 162.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 594.55,
                "protein_g": 73.8,
                "carbs_g": 0.0,
                "fat_g": 33.37
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 223.6,
                  "macros": {
                    "kcal": 45.77,
                    "protein_g": 3.18,
                    "carbs_g": 10.03,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 199.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 199.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 80.63,
                "protein_g": 4.3,
                "carbs_g": 11.8,
                "fat_g": 3.14
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 682.03,
          "protein_g": 78.95,
          "carbs_g": 13.07,
          "fat_g": 36.58
        },
        "delta_vs_target": {
          "kcal": -3.27,
          "protein_g": 0.15,
          "carbs_g": 0.09,
          "fat_g": 1.5
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D056",
        "name": "Bife simples na chapa + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 310.8,
                  "macros": {
                    "kcal": 426.22,
                    "protein_g": 72.72,
                    "carbs_g": 0.0,
                    "fat_g": 15.15
                  },
                  "nutrition_basis_grams": 202.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 202.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 19.0,
                  "macros": {
                    "kcal": 171.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 19.0
                  },
                  "nutrition_basis_grams": 19.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 597.22,
                "protein_g": 72.72,
                "carbs_g": 0.0,
                "fat_g": 34.15
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 1050.0,
                  "macros": {
                    "kcal": 49.98,
                    "protein_g": 3.56,
                    "carbs_g": 11.7,
                    "fat_g": 0.41
                  },
                  "nutrition_basis_grams": 294.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 294.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 76.86,
                "protein_g": 5.47,
                "carbs_g": 11.85,
                "fat_g": 2.51
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 680.93,
          "protein_g": 79.04,
          "carbs_g": 13.12,
          "fat_g": 36.73
        },
        "delta_vs_target": {
          "kcal": -4.37,
          "protein_g": 0.24,
          "carbs_g": 0.14,
          "fat_g": 1.65
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D057",
        "name": "Bife simples na chapa + Cogumelos ao alho e ervas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 303.1,
                  "macros": {
                    "kcal": 415.67,
                    "protein_g": 70.92,
                    "carbs_g": 0.0,
                    "fat_g": 14.78
                  },
                  "nutrition_basis_grams": 197.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 197.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 19.0,
                  "macros": {
                    "kcal": 171.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 19.0
                  },
                  "nutrition_basis_grams": 19.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 586.67,
                "protein_g": 70.92,
                "carbs_g": 0.0,
                "fat_g": 33.78
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 577.3,
                  "macros": {
                    "kcal": 96.52,
                    "protein_g": 6.68,
                    "carbs_g": 11.46,
                    "fat_g": 1.09
                  },
                  "nutrition_basis_grams": 254.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 254.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 96.52,
                "protein_g": 6.68,
                "carbs_g": 11.46,
                "fat_g": 1.09
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 690.04,
          "protein_g": 78.45,
          "carbs_g": 12.73,
          "fat_g": 34.94
        },
        "delta_vs_target": {
          "kcal": 4.74,
          "protein_g": -0.35,
          "carbs_g": -0.25,
          "fat_g": -0.14
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D058",
        "name": "Bife simples na chapa + Vagem com limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 312.3,
                  "macros": {
                    "kcal": 428.33,
                    "protein_g": 73.08,
                    "carbs_g": 0.0,
                    "fat_g": 15.22
                  },
                  "nutrition_basis_grams": 203.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 203.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 162.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 590.33,
                "protein_g": 73.08,
                "carbs_g": 0.0,
                "fat_g": 33.22
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 262.9,
                  "macros": {
                    "kcal": 53.82,
                    "protein_g": 3.74,
                    "carbs_g": 11.79,
                    "fat_g": 0.35
                  },
                  "nutrition_basis_grams": 234.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 234.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 80.7,
                "protein_g": 5.65,
                "carbs_g": 11.94,
                "fat_g": 2.45
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 677.88,
          "protein_g": 79.58,
          "carbs_g": 13.21,
          "fat_g": 35.74
        },
        "delta_vs_target": {
          "kcal": -7.42,
          "protein_g": 0.78,
          "carbs_g": 0.23,
          "fat_g": 0.66
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D059",
        "name": "Bife simples na chapa + Berinjela assada com tomate e manjericão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 329.2,
                  "macros": {
                    "kcal": 451.54,
                    "protein_g": 77.04,
                    "carbs_g": 0.0,
                    "fat_g": 16.05
                  },
                  "nutrition_basis_grams": 214.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 214.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 19.0,
                  "macros": {
                    "kcal": 171.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 19.0
                  },
                  "nutrition_basis_grams": 19.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 622.54,
                "protein_g": 77.04,
                "carbs_g": 0.0,
                "fat_g": 35.05
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.4,
                    "protein_g": 0.31,
                    "carbs_g": 1.15,
                    "fat_g": 0.05
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 184.0,
                  "macros": {
                    "kcal": 44.98,
                    "protein_g": 1.37,
                    "carbs_g": 10.73,
                    "fat_g": 0.42
                  },
                  "nutrition_basis_grams": 173.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 173.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 50.38,
                "protein_g": 1.68,
                "carbs_g": 11.88,
                "fat_g": 0.47
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 679.77,
          "protein_g": 79.57,
          "carbs_g": 13.15,
          "fat_g": 35.59
        },
        "delta_vs_target": {
          "kcal": -5.53,
          "protein_g": 0.77,
          "carbs_g": 0.17,
          "fat_g": 0.51
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D060",
        "name": "Bife apimentado + Purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 318.5,
                  "macros": {
                    "kcal": 436.77,
                    "protein_g": 74.52,
                    "carbs_g": 0.0,
                    "fat_g": 15.52
                  },
                  "nutrition_basis_grams": 207.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 207.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 180.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 20.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 616.77,
                "protein_g": 74.52,
                "carbs_g": 0.0,
                "fat_g": 35.52
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 326.5,
                  "macros": {
                    "kcal": 54.4,
                    "protein_g": 4.1,
                    "carbs_g": 10.91,
                    "fat_g": 0.64
                  },
                  "nutrition_basis_grams": 320.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 320.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 54.4,
                "protein_g": 4.1,
                "carbs_g": 10.91,
                "fat_g": 0.64
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 678.02,
          "protein_g": 79.47,
          "carbs_g": 12.18,
          "fat_g": 36.23
        },
        "delta_vs_target": {
          "kcal": -7.28,
          "protein_g": 0.67,
          "carbs_g": -0.8,
          "fat_g": 1.15
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D061",
        "name": "Bife apimentado + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 315.4,
                  "macros": {
                    "kcal": 432.55,
                    "protein_g": 73.8,
                    "carbs_g": 0.0,
                    "fat_g": 15.37
                  },
                  "nutrition_basis_grams": 205.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 205.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 162.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 594.55,
                "protein_g": 73.8,
                "carbs_g": 0.0,
                "fat_g": 33.37
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 223.6,
                  "macros": {
                    "kcal": 45.77,
                    "protein_g": 3.18,
                    "carbs_g": 10.03,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 199.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 199.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 80.63,
                "protein_g": 4.3,
                "carbs_g": 11.8,
                "fat_g": 3.14
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 682.03,
          "protein_g": 78.95,
          "carbs_g": 13.07,
          "fat_g": 36.58
        },
        "delta_vs_target": {
          "kcal": -3.27,
          "protein_g": 0.15,
          "carbs_g": 0.09,
          "fat_g": 1.5
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D062",
        "name": "Bife apimentado + Cogumelos ao alho e ervas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 303.1,
                  "macros": {
                    "kcal": 415.67,
                    "protein_g": 70.92,
                    "carbs_g": 0.0,
                    "fat_g": 14.78
                  },
                  "nutrition_basis_grams": 197.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 197.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 19.0,
                  "macros": {
                    "kcal": 171.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 19.0
                  },
                  "nutrition_basis_grams": 19.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 586.67,
                "protein_g": 70.92,
                "carbs_g": 0.0,
                "fat_g": 33.78
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 577.3,
                  "macros": {
                    "kcal": 96.52,
                    "protein_g": 6.68,
                    "carbs_g": 11.46,
                    "fat_g": 1.09
                  },
                  "nutrition_basis_grams": 254.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 254.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 96.52,
                "protein_g": 6.68,
                "carbs_g": 11.46,
                "fat_g": 1.09
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 690.04,
          "protein_g": 78.45,
          "carbs_g": 12.73,
          "fat_g": 34.94
        },
        "delta_vs_target": {
          "kcal": 4.74,
          "protein_g": -0.35,
          "carbs_g": -0.25,
          "fat_g": -0.14
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D063",
        "name": "Bife apimentado + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 304.6,
                  "macros": {
                    "kcal": 417.78,
                    "protein_g": 71.28,
                    "carbs_g": 0.0,
                    "fat_g": 14.85
                  },
                  "nutrition_basis_grams": 198.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 198.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 180.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 20.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 597.78,
                "protein_g": 71.28,
                "carbs_g": 0.0,
                "fat_g": 34.85
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 269.0,
                  "macros": {
                    "kcal": 72.63,
                    "protein_g": 7.29,
                    "carbs_g": 11.94,
                    "fat_g": 1.45
                  },
                  "nutrition_basis_grams": 269.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 269.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 72.63,
                "protein_g": 7.29,
                "carbs_g": 11.94,
                "fat_g": 1.45
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 677.26,
          "protein_g": 79.42,
          "carbs_g": 13.21,
          "fat_g": 36.37
        },
        "delta_vs_target": {
          "kcal": -8.04,
          "protein_g": 0.62,
          "carbs_g": 0.23,
          "fat_g": 1.29
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D064",
        "name": "Bife apimentado + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 321.5,
                  "macros": {
                    "kcal": 440.99,
                    "protein_g": 75.24,
                    "carbs_g": 0.0,
                    "fat_g": 15.67
                  },
                  "nutrition_basis_grams": 209.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 209.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 180.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 20.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 620.99,
                "protein_g": 75.24,
                "carbs_g": 0.0,
                "fat_g": 35.67
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 1064.3,
                  "macros": {
                    "kcal": 50.66,
                    "protein_g": 3.61,
                    "carbs_g": 11.86,
                    "fat_g": 0.42
                  },
                  "nutrition_basis_grams": 298.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 298.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 50.66,
                "protein_g": 3.61,
                "carbs_g": 11.86,
                "fat_g": 0.42
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 678.5,
          "protein_g": 79.7,
          "carbs_g": 13.13,
          "fat_g": 36.16
        },
        "delta_vs_target": {
          "kcal": -6.8,
          "protein_g": 0.9,
          "carbs_g": 0.15,
          "fat_g": 1.08
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D065",
        "name": "Bife apimentado + Vagem com limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 312.3,
                  "macros": {
                    "kcal": 428.33,
                    "protein_g": 73.08,
                    "carbs_g": 0.0,
                    "fat_g": 15.22
                  },
                  "nutrition_basis_grams": 203.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 203.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 18.0,
                  "macros": {
                    "kcal": 162.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 18.0
                  },
                  "nutrition_basis_grams": 18.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 590.33,
                "protein_g": 73.08,
                "carbs_g": 0.0,
                "fat_g": 33.22
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 262.9,
                  "macros": {
                    "kcal": 53.82,
                    "protein_g": 3.74,
                    "carbs_g": 11.79,
                    "fat_g": 0.35
                  },
                  "nutrition_basis_grams": 234.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 234.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 80.7,
                "protein_g": 5.65,
                "carbs_g": 11.94,
                "fat_g": 2.45
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 677.88,
          "protein_g": 79.58,
          "carbs_g": 13.21,
          "fat_g": 35.74
        },
        "delta_vs_target": {
          "kcal": -7.42,
          "protein_g": 0.78,
          "carbs_g": 0.23,
          "fat_g": 0.66
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D066",
        "name": "Bife apimentado + Berinjela assada com tomate e manjericão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING008",
                  "ingredient_name": "Patinho bovino cru, sem osso e aparado, pronto para cozinhar",
                  "grams": 329.2,
                  "macros": {
                    "kcal": 451.54,
                    "protein_g": 77.04,
                    "carbs_g": 0.0,
                    "fat_g": 16.05
                  },
                  "nutrition_basis_grams": 214.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.65,
                    "expected_nutrition_basis_grams": 214.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: beef round steak, knuckle, peeled, boneless; 1 lb raw AP = 0.65 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 19.0,
                  "macros": {
                    "kcal": 171.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 19.0
                  },
                  "nutrition_basis_grams": 19.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 622.54,
                "protein_g": 77.04,
                "carbs_g": 0.0,
                "fat_g": 35.05
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.4,
                    "protein_g": 0.31,
                    "carbs_g": 1.15,
                    "fat_g": 0.05
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 184.0,
                  "macros": {
                    "kcal": 44.98,
                    "protein_g": 1.37,
                    "carbs_g": 10.73,
                    "fat_g": 0.42
                  },
                  "nutrition_basis_grams": 173.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 173.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 50.38,
                "protein_g": 1.68,
                "carbs_g": 11.88,
                "fat_g": 0.47
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 679.77,
          "protein_g": 79.57,
          "carbs_g": 13.15,
          "fat_g": 35.59
        },
        "delta_vs_target": {
          "kcal": -5.53,
          "protein_g": 0.77,
          "carbs_g": 0.17,
          "fat_g": 0.51
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D067",
        "name": "Hambúrguer bovino caseiro sem pão + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 4.92,
                    "protein_g": 0.21,
                    "carbs_g": 1.11,
                    "fat_g": 0.02
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 354.7,
                  "macros": {
                    "kcal": 563.92,
                    "protein_g": 71.02,
                    "carbs_g": 0.0,
                    "fat_g": 28.99
                  },
                  "nutrition_basis_grams": 266.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 266.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 5.0,
                  "macros": {
                    "kcal": 45.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 5.0
                  },
                  "nutrition_basis_grams": 5.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 613.84,
                "protein_g": 71.23,
                "carbs_g": 1.11,
                "fat_g": 34.01
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 240.0,
                  "macros": {
                    "kcal": 64.8,
                    "protein_g": 6.5,
                    "carbs_g": 10.66,
                    "fat_g": 1.3
                  },
                  "nutrition_basis_grams": 240.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 240.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 64.8,
                "protein_g": 6.5,
                "carbs_g": 10.66,
                "fat_g": 1.3
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 685.49,
          "protein_g": 78.58,
          "carbs_g": 13.04,
          "fat_g": 35.38
        },
        "delta_vs_target": {
          "kcal": 0.19,
          "protein_g": -0.22,
          "carbs_g": 0.06,
          "fat_g": 0.3
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D068",
        "name": "Hambúrguer bovino caseiro sem pão + Couve-flor assada com especiarias + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 4.92,
                    "protein_g": 0.21,
                    "carbs_g": 1.11,
                    "fat_g": 0.02
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 368.0,
                  "macros": {
                    "kcal": 585.12,
                    "protein_g": 73.69,
                    "carbs_g": 0.0,
                    "fat_g": 30.08
                  },
                  "nutrition_basis_grams": 276.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 276.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 626.04,
                "protein_g": 73.9,
                "carbs_g": 1.11,
                "fat_g": 34.1
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 317.3,
                  "macros": {
                    "kcal": 52.87,
                    "protein_g": 3.98,
                    "carbs_g": 10.61,
                    "fat_g": 0.62
                  },
                  "nutrition_basis_grams": 311.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 311.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 52.87,
                "protein_g": 3.98,
                "carbs_g": 10.61,
                "fat_g": 0.62
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 685.76,
          "protein_g": 78.73,
          "carbs_g": 12.99,
          "fat_g": 34.79
        },
        "delta_vs_target": {
          "kcal": 0.46,
          "protein_g": -0.07,
          "carbs_g": 0.01,
          "fat_g": -0.29
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D069",
        "name": "Hambúrguer bovino caseiro sem pão + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 4.92,
                    "protein_g": 0.21,
                    "carbs_g": 1.11,
                    "fat_g": 0.02
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 366.7,
                  "macros": {
                    "kcal": 583.0,
                    "protein_g": 73.42,
                    "carbs_g": 0.0,
                    "fat_g": 29.98
                  },
                  "nutrition_basis_grams": 275.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 275.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 2.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 2.0
                  },
                  "nutrition_basis_grams": 2.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 605.92,
                "protein_g": 73.63,
                "carbs_g": 1.11,
                "fat_g": 32.0
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 195.5,
                  "macros": {
                    "kcal": 40.02,
                    "protein_g": 2.78,
                    "carbs_g": 8.77,
                    "fat_g": 0.26
                  },
                  "nutrition_basis_grams": 174.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 174.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 74.88,
                "protein_g": 3.9,
                "carbs_g": 10.54,
                "fat_g": 3.1
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 687.65,
          "protein_g": 78.38,
          "carbs_g": 12.92,
          "fat_g": 35.17
        },
        "delta_vs_target": {
          "kcal": 2.35,
          "protein_g": -0.42,
          "carbs_g": -0.06,
          "fat_g": 0.09
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D070",
        "name": "Hambúrguer bovino caseiro sem pão + Cogumelos ao alho e ervas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 4.92,
                    "protein_g": 0.21,
                    "carbs_g": 1.11,
                    "fat_g": 0.02
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 356.0,
                  "macros": {
                    "kcal": 566.04,
                    "protein_g": 71.29,
                    "carbs_g": 0.0,
                    "fat_g": 29.1
                  },
                  "nutrition_basis_grams": 267.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 267.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 3.0,
                  "macros": {
                    "kcal": 27.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 3.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 597.96,
                "protein_g": 71.5,
                "carbs_g": 1.11,
                "fat_g": 32.12
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 518.2,
                  "macros": {
                    "kcal": 86.64,
                    "protein_g": 6.0,
                    "carbs_g": 10.28,
                    "fat_g": 0.98
                  },
                  "nutrition_basis_grams": 228.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 228.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 86.64,
                "protein_g": 6.0,
                "carbs_g": 10.28,
                "fat_g": 0.98
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 691.45,
          "protein_g": 78.35,
          "carbs_g": 12.66,
          "fat_g": 33.17
        },
        "delta_vs_target": {
          "kcal": 6.15,
          "protein_g": -0.45,
          "carbs_g": -0.32,
          "fat_g": -1.91
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D071",
        "name": "Hambúrguer bovino caseiro sem pão + Arroz de couve-flor com cominho e coentro + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 4.92,
                    "protein_g": 0.21,
                    "carbs_g": 1.11,
                    "fat_g": 0.02
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 368.0,
                  "macros": {
                    "kcal": 585.12,
                    "protein_g": 73.69,
                    "carbs_g": 0.0,
                    "fat_g": 30.08
                  },
                  "nutrition_basis_grams": 276.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 276.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 626.04,
                "protein_g": 73.9,
                "carbs_g": 1.11,
                "fat_g": 34.1
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 317.3,
                  "macros": {
                    "kcal": 52.87,
                    "protein_g": 3.98,
                    "carbs_g": 10.61,
                    "fat_g": 0.62
                  },
                  "nutrition_basis_grams": 311.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 311.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 52.87,
                "protein_g": 3.98,
                "carbs_g": 10.61,
                "fat_g": 0.62
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 685.76,
          "protein_g": 78.73,
          "carbs_g": 12.99,
          "fat_g": 34.79
        },
        "delta_vs_target": {
          "kcal": 0.46,
          "protein_g": -0.07,
          "carbs_g": 0.01,
          "fat_g": -0.29
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D072",
        "name": "Hambúrguer bovino caseiro sem pão + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 4.92,
                    "protein_g": 0.21,
                    "carbs_g": 1.11,
                    "fat_g": 0.02
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 372.0,
                  "macros": {
                    "kcal": 591.48,
                    "protein_g": 74.49,
                    "carbs_g": 0.0,
                    "fat_g": 30.41
                  },
                  "nutrition_basis_grams": 279.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 279.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 632.4,
                "protein_g": 74.7,
                "carbs_g": 1.11,
                "fat_g": 34.43
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 953.6,
                  "macros": {
                    "kcal": 45.39,
                    "protein_g": 3.23,
                    "carbs_g": 10.63,
                    "fat_g": 0.37
                  },
                  "nutrition_basis_grams": 267.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 267.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 45.39,
                "protein_g": 3.23,
                "carbs_g": 10.63,
                "fat_g": 0.37
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 684.64,
          "protein_g": 78.78,
          "carbs_g": 13.01,
          "fat_g": 34.87
        },
        "delta_vs_target": {
          "kcal": -0.66,
          "protein_g": -0.02,
          "carbs_g": 0.03,
          "fat_g": -0.21
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D073",
        "name": "Hambúrguer bovino caseiro sem pão + Berinjela assada com tomate e manjericão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING024",
                  "ingredient_name": "Cebola branca crua",
                  "grams": 12.0,
                  "macros": {
                    "kcal": 4.92,
                    "protein_g": 0.21,
                    "carbs_g": 1.11,
                    "fat_g": 0.02
                  },
                  "nutrition_basis_grams": 12.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 380.0,
                  "macros": {
                    "kcal": 604.2,
                    "protein_g": 76.09,
                    "carbs_g": 0.0,
                    "fat_g": 31.07
                  },
                  "nutrition_basis_grams": 285.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 285.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 3.0,
                  "macros": {
                    "kcal": 27.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 3.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 636.12,
                "protein_g": 76.3,
                "carbs_g": 1.11,
                "fat_g": 34.09
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.4,
                    "protein_g": 0.31,
                    "carbs_g": 1.15,
                    "fat_g": 0.05
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 160.6,
                  "macros": {
                    "kcal": 39.26,
                    "protein_g": 1.19,
                    "carbs_g": 9.36,
                    "fat_g": 0.36
                  },
                  "nutrition_basis_grams": 151.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 151.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 44.66,
                "protein_g": 1.5,
                "carbs_g": 10.51,
                "fat_g": 0.41
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 687.63,
          "protein_g": 78.65,
          "carbs_g": 12.89,
          "fat_g": 34.57
        },
        "delta_vs_target": {
          "kcal": 2.33,
          "protein_g": -0.15,
          "carbs_g": -0.09,
          "fat_g": -0.51
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D074",
        "name": "Kofta bovina grelhada + Couve-flor assada com especiarias + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 369.3,
                  "macros": {
                    "kcal": 587.24,
                    "protein_g": 73.96,
                    "carbs_g": 0.0,
                    "fat_g": 30.19
                  },
                  "nutrition_basis_grams": 277.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 277.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 623.24,
                "protein_g": 73.96,
                "carbs_g": 0.0,
                "fat_g": 34.19
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 326.5,
                  "macros": {
                    "kcal": 54.4,
                    "protein_g": 4.1,
                    "carbs_g": 10.91,
                    "fat_g": 0.64
                  },
                  "nutrition_basis_grams": 320.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 320.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 54.4,
                "protein_g": 4.1,
                "carbs_g": 10.91,
                "fat_g": 0.64
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 684.49,
          "protein_g": 78.91,
          "carbs_g": 12.18,
          "fat_g": 34.9
        },
        "delta_vs_target": {
          "kcal": -0.81,
          "protein_g": 0.11,
          "carbs_g": -0.8,
          "fat_g": -0.18
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D075",
        "name": "Kofta bovina grelhada + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 366.7,
                  "macros": {
                    "kcal": 583.0,
                    "protein_g": 73.42,
                    "carbs_g": 0.0,
                    "fat_g": 29.98
                  },
                  "nutrition_basis_grams": 275.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 275.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 2.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 2.0
                  },
                  "nutrition_basis_grams": 2.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 601.0,
                "protein_g": 73.42,
                "carbs_g": 0.0,
                "fat_g": 31.98
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 220.2,
                  "macros": {
                    "kcal": 45.08,
                    "protein_g": 3.14,
                    "carbs_g": 9.88,
                    "fat_g": 0.29
                  },
                  "nutrition_basis_grams": 196.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 196.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 79.94,
                "protein_g": 4.26,
                "carbs_g": 11.65,
                "fat_g": 3.13
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 687.79,
          "protein_g": 78.53,
          "carbs_g": 12.92,
          "fat_g": 35.18
        },
        "delta_vs_target": {
          "kcal": 2.49,
          "protein_g": -0.27,
          "carbs_g": -0.06,
          "fat_g": 0.1
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D076",
        "name": "Kofta bovina grelhada + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 361.3,
                  "macros": {
                    "kcal": 574.52,
                    "protein_g": 72.36,
                    "carbs_g": 0.0,
                    "fat_g": 29.54
                  },
                  "nutrition_basis_grams": 271.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 271.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 3.0,
                  "macros": {
                    "kcal": 27.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 3.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 601.52,
                "protein_g": 72.36,
                "carbs_g": 0.0,
                "fat_g": 32.54
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 1039.3,
                  "macros": {
                    "kcal": 49.47,
                    "protein_g": 3.52,
                    "carbs_g": 11.58,
                    "fat_g": 0.41
                  },
                  "nutrition_basis_grams": 291.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 291.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 76.35,
                "protein_g": 5.43,
                "carbs_g": 11.73,
                "fat_g": 2.51
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 684.72,
          "protein_g": 78.64,
          "carbs_g": 13.0,
          "fat_g": 35.12
        },
        "delta_vs_target": {
          "kcal": -0.58,
          "protein_g": -0.16,
          "carbs_g": 0.02,
          "fat_g": 0.04
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D077",
        "name": "Kofta bovina grelhada + Arroz de couve-flor com cominho e coentro + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 369.3,
                  "macros": {
                    "kcal": 587.24,
                    "protein_g": 73.96,
                    "carbs_g": 0.0,
                    "fat_g": 30.19
                  },
                  "nutrition_basis_grams": 277.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 277.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 623.24,
                "protein_g": 73.96,
                "carbs_g": 0.0,
                "fat_g": 34.19
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 326.5,
                  "macros": {
                    "kcal": 54.4,
                    "protein_g": 4.1,
                    "carbs_g": 10.91,
                    "fat_g": 0.64
                  },
                  "nutrition_basis_grams": 320.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 320.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 54.4,
                "protein_g": 4.1,
                "carbs_g": 10.91,
                "fat_g": 0.64
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 684.49,
          "protein_g": 78.91,
          "carbs_g": 12.18,
          "fat_g": 34.9
        },
        "delta_vs_target": {
          "kcal": -0.81,
          "protein_g": 0.11,
          "carbs_g": -0.8,
          "fat_g": -0.18
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D078",
        "name": "Kofta bovina grelhada + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 372.0,
                  "macros": {
                    "kcal": 591.48,
                    "protein_g": 74.49,
                    "carbs_g": 0.0,
                    "fat_g": 30.41
                  },
                  "nutrition_basis_grams": 279.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 279.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 627.48,
                "protein_g": 74.49,
                "carbs_g": 0.0,
                "fat_g": 34.41
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 1053.6,
                  "macros": {
                    "kcal": 50.15,
                    "protein_g": 3.57,
                    "carbs_g": 11.74,
                    "fat_g": 0.41
                  },
                  "nutrition_basis_grams": 295.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 295.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 50.15,
                "protein_g": 3.57,
                "carbs_g": 11.74,
                "fat_g": 0.41
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 684.48,
          "protein_g": 78.91,
          "carbs_g": 13.01,
          "fat_g": 34.89
        },
        "delta_vs_target": {
          "kcal": -0.82,
          "protein_g": 0.11,
          "carbs_g": 0.03,
          "fat_g": -0.19
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D079",
        "name": "Kofta bovina grelhada + Vagem com limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 360.0,
                  "macros": {
                    "kcal": 572.4,
                    "protein_g": 72.09,
                    "carbs_g": 0.0,
                    "fat_g": 29.43
                  },
                  "nutrition_basis_grams": 270.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 270.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 3.0,
                  "macros": {
                    "kcal": 27.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 3.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 599.4,
                "protein_g": 72.09,
                "carbs_g": 0.0,
                "fat_g": 32.43
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 258.4,
                  "macros": {
                    "kcal": 52.9,
                    "protein_g": 3.68,
                    "carbs_g": 11.59,
                    "fat_g": 0.34
                  },
                  "nutrition_basis_grams": 230.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 230.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 79.78,
                "protein_g": 5.59,
                "carbs_g": 11.74,
                "fat_g": 2.44
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 686.03,
          "protein_g": 78.53,
          "carbs_g": 13.01,
          "fat_g": 34.94
        },
        "delta_vs_target": {
          "kcal": 0.73,
          "protein_g": -0.27,
          "carbs_g": 0.03,
          "fat_g": -0.14
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D080",
        "name": "Kofta bovina grelhada + Berinjela assada com tomate e manjericão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 380.0,
                  "macros": {
                    "kcal": 604.2,
                    "protein_g": 76.09,
                    "carbs_g": 0.0,
                    "fat_g": 31.07
                  },
                  "nutrition_basis_grams": 285.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 285.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 3.0,
                  "macros": {
                    "kcal": 27.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 3.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 631.2,
                "protein_g": 76.09,
                "carbs_g": 0.0,
                "fat_g": 34.07
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.4,
                    "protein_g": 0.31,
                    "carbs_g": 1.15,
                    "fat_g": 0.05
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 179.8,
                  "macros": {
                    "kcal": 43.94,
                    "protein_g": 1.34,
                    "carbs_g": 10.48,
                    "fat_g": 0.41
                  },
                  "nutrition_basis_grams": 169.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 169.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 49.34,
                "protein_g": 1.65,
                "carbs_g": 11.63,
                "fat_g": 0.46
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 687.39,
          "protein_g": 78.59,
          "carbs_g": 12.9,
          "fat_g": 34.6
        },
        "delta_vs_target": {
          "kcal": 2.09,
          "protein_g": -0.21,
          "carbs_g": -0.08,
          "fat_g": -0.48
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D081",
        "name": "Kofte marroquino ao tomate + Couve-flor assada com especiarias + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 6.3,
                    "protein_g": 0.36,
                    "carbs_g": 1.34,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 368.0,
                  "macros": {
                    "kcal": 585.12,
                    "protein_g": 73.69,
                    "carbs_g": 0.0,
                    "fat_g": 30.08
                  },
                  "nutrition_basis_grams": 276.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 276.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 627.42,
                "protein_g": 74.05,
                "carbs_g": 1.34,
                "fat_g": 34.14
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 309.2,
                  "macros": {
                    "kcal": 51.51,
                    "protein_g": 3.88,
                    "carbs_g": 10.33,
                    "fat_g": 0.61
                  },
                  "nutrition_basis_grams": 303.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 303.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 51.51,
                "protein_g": 3.88,
                "carbs_g": 10.33,
                "fat_g": 0.61
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 685.78,
          "protein_g": 78.78,
          "carbs_g": 12.94,
          "fat_g": 34.82
        },
        "delta_vs_target": {
          "kcal": 0.48,
          "protein_g": -0.02,
          "carbs_g": -0.04,
          "fat_g": -0.26
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D082",
        "name": "Kofte marroquino ao tomate + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 6.3,
                    "protein_g": 0.36,
                    "carbs_g": 1.34,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 361.3,
                  "macros": {
                    "kcal": 574.52,
                    "protein_g": 72.36,
                    "carbs_g": 0.0,
                    "fat_g": 29.54
                  },
                  "nutrition_basis_grams": 271.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 271.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 3.0,
                  "macros": {
                    "kcal": 27.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 3.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 607.82,
                "protein_g": 72.72,
                "carbs_g": 1.34,
                "fat_g": 32.6
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 917.9,
                  "macros": {
                    "kcal": 43.69,
                    "protein_g": 3.11,
                    "carbs_g": 10.23,
                    "fat_g": 0.36
                  },
                  "nutrition_basis_grams": 257.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 257.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 70.57,
                "protein_g": 5.02,
                "carbs_g": 10.38,
                "fat_g": 2.46
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 685.24,
          "protein_g": 78.59,
          "carbs_g": 12.99,
          "fat_g": 35.13
        },
        "delta_vs_target": {
          "kcal": -0.06,
          "protein_g": -0.21,
          "carbs_g": 0.01,
          "fat_g": 0.05
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D083",
        "name": "Kofte marroquino ao tomate + Arroz de couve-flor com cominho e coentro + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 6.3,
                    "protein_g": 0.36,
                    "carbs_g": 1.34,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 368.0,
                  "macros": {
                    "kcal": 585.12,
                    "protein_g": 73.69,
                    "carbs_g": 0.0,
                    "fat_g": 30.08
                  },
                  "nutrition_basis_grams": 276.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 276.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 627.42,
                "protein_g": 74.05,
                "carbs_g": 1.34,
                "fat_g": 34.14
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 309.2,
                  "macros": {
                    "kcal": 51.51,
                    "protein_g": 3.88,
                    "carbs_g": 10.33,
                    "fat_g": 0.61
                  },
                  "nutrition_basis_grams": 303.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 303.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 51.51,
                "protein_g": 3.88,
                "carbs_g": 10.33,
                "fat_g": 0.61
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 685.78,
          "protein_g": 78.78,
          "carbs_g": 12.94,
          "fat_g": 34.82
        },
        "delta_vs_target": {
          "kcal": 0.48,
          "protein_g": -0.02,
          "carbs_g": -0.04,
          "fat_g": -0.26
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D084",
        "name": "Kofte marroquino ao tomate + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 6.3,
                    "protein_g": 0.36,
                    "carbs_g": 1.34,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 372.0,
                  "macros": {
                    "kcal": 591.48,
                    "protein_g": 74.49,
                    "carbs_g": 0.0,
                    "fat_g": 30.41
                  },
                  "nutrition_basis_grams": 279.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 279.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 633.78,
                "protein_g": 74.85,
                "carbs_g": 1.34,
                "fat_g": 34.47
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 932.1,
                  "macros": {
                    "kcal": 44.37,
                    "protein_g": 3.16,
                    "carbs_g": 10.39,
                    "fat_g": 0.37
                  },
                  "nutrition_basis_grams": 261.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 261.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 44.37,
                "protein_g": 3.16,
                "carbs_g": 10.39,
                "fat_g": 0.37
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 685.0,
          "protein_g": 78.86,
          "carbs_g": 13.0,
          "fat_g": 34.91
        },
        "delta_vs_target": {
          "kcal": -0.3,
          "protein_g": 0.06,
          "carbs_g": 0.02,
          "fat_g": -0.17
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D085",
        "name": "Kofte marroquino ao tomate + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 6.3,
                    "protein_g": 0.36,
                    "carbs_g": 1.34,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 366.7,
                  "macros": {
                    "kcal": 583.0,
                    "protein_g": 73.42,
                    "carbs_g": 0.0,
                    "fat_g": 29.98
                  },
                  "nutrition_basis_grams": 275.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 275.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 2.0,
                  "macros": {
                    "kcal": 18.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 2.0
                  },
                  "nutrition_basis_grams": 2.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 607.3,
                "protein_g": 73.78,
                "carbs_g": 1.34,
                "fat_g": 32.04
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 189.9,
                  "macros": {
                    "kcal": 38.87,
                    "protein_g": 2.7,
                    "carbs_g": 8.52,
                    "fat_g": 0.25
                  },
                  "nutrition_basis_grams": 169.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 169.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 73.73,
                "protein_g": 3.82,
                "carbs_g": 10.29,
                "fat_g": 3.09
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 687.88,
          "protein_g": 78.45,
          "carbs_g": 12.9,
          "fat_g": 35.2
        },
        "delta_vs_target": {
          "kcal": 2.58,
          "protein_g": -0.35,
          "carbs_g": -0.08,
          "fat_g": 0.12
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D086",
        "name": "Kofte marroquino ao tomate + Vagem com limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 6.3,
                    "protein_g": 0.36,
                    "carbs_g": 1.34,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 360.0,
                  "macros": {
                    "kcal": 572.4,
                    "protein_g": 72.09,
                    "carbs_g": 0.0,
                    "fat_g": 29.43
                  },
                  "nutrition_basis_grams": 270.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 270.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 3.0,
                  "macros": {
                    "kcal": 27.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 3.0
                  },
                  "nutrition_basis_grams": 3.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 605.7,
                "protein_g": 72.45,
                "carbs_g": 1.34,
                "fat_g": 32.49
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 228.1,
                  "macros": {
                    "kcal": 46.69,
                    "protein_g": 3.25,
                    "carbs_g": 10.23,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 203.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 203.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 73.57,
                "protein_g": 5.16,
                "carbs_g": 10.38,
                "fat_g": 2.4
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 686.12,
          "protein_g": 78.46,
          "carbs_g": 12.99,
          "fat_g": 34.96
        },
        "delta_vs_target": {
          "kcal": 0.82,
          "protein_g": -0.34,
          "carbs_g": 0.01,
          "fat_g": -0.12
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D087",
        "name": "Kofte marroquino ao tomate + Purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 35.0,
                  "macros": {
                    "kcal": 6.3,
                    "protein_g": 0.36,
                    "carbs_g": 1.34,
                    "fat_g": 0.06
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING007",
                  "ingredient_name": "Acém bovino cru, moído, pronto para cozinhar",
                  "grams": 368.0,
                  "macros": {
                    "kcal": 585.12,
                    "protein_g": 73.69,
                    "carbs_g": 0.0,
                    "fat_g": 30.08
                  },
                  "nutrition_basis_grams": 276.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.75,
                    "expected_nutrition_basis_grams": 276.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG proxy: ground beef, no more than 15% fat; 1 lb raw AP = 0.75 lb cooked, drained lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 4.0,
                  "macros": {
                    "kcal": 36.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 4.0
                  },
                  "nutrition_basis_grams": 4.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 627.42,
                "protein_g": 74.05,
                "carbs_g": 1.34,
                "fat_g": 34.14
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 309.2,
                  "macros": {
                    "kcal": 51.51,
                    "protein_g": 3.88,
                    "carbs_g": 10.33,
                    "fat_g": 0.61
                  },
                  "nutrition_basis_grams": 303.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 303.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 51.51,
                "protein_g": 3.88,
                "carbs_g": 10.33,
                "fat_g": 0.61
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 685.78,
          "protein_g": 78.78,
          "carbs_g": 12.94,
          "fat_g": 34.82
        },
        "delta_vs_target": {
          "kcal": 0.48,
          "protein_g": -0.02,
          "carbs_g": -0.04,
          "fat_g": -0.26
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D088",
        "name": "Frango grelhado com limão e alho + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 311.0,
                  "macros": {
                    "kcal": 349.58,
                    "protein_g": 71.05,
                    "carbs_g": 0.0,
                    "fat_g": 7.17
                  },
                  "nutrition_basis_grams": 227.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 227.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 601.58,
                "protein_g": 71.05,
                "carbs_g": 0.0,
                "fat_g": 35.17
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 266.0,
                  "macros": {
                    "kcal": 71.82,
                    "protein_g": 7.21,
                    "carbs_g": 11.81,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 266.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 266.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 71.82,
                "protein_g": 7.21,
                "carbs_g": 11.81,
                "fat_g": 1.44
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 680.25,
          "protein_g": 79.11,
          "carbs_g": 13.08,
          "fat_g": 36.68
        },
        "delta_vs_target": {
          "kcal": -5.05,
          "protein_g": 0.31,
          "carbs_g": 0.1,
          "fat_g": 1.6
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D089",
        "name": "Frango grelhado com limão e alho + Brócolis com ervas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 311.0,
                  "macros": {
                    "kcal": 349.58,
                    "protein_g": 71.05,
                    "carbs_g": 0.0,
                    "fat_g": 7.17
                  },
                  "nutrition_basis_grams": 227.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 227.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 601.58,
                "protein_g": 71.05,
                "carbs_g": 0.0,
                "fat_g": 35.17
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 266.0,
                  "macros": {
                    "kcal": 71.82,
                    "protein_g": 7.21,
                    "carbs_g": 11.81,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 266.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 266.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 71.82,
                "protein_g": 7.21,
                "carbs_g": 11.81,
                "fat_g": 1.44
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 680.25,
          "protein_g": 79.11,
          "carbs_g": 13.08,
          "fat_g": 36.68
        },
        "delta_vs_target": {
          "kcal": -5.05,
          "protein_g": 0.31,
          "carbs_g": 0.1,
          "fat_g": 1.6
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D090",
        "name": "Frango grelhado com limão e alho + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 324.7,
                  "macros": {
                    "kcal": 364.98,
                    "protein_g": 74.18,
                    "carbs_g": 0.0,
                    "fat_g": 7.49
                  },
                  "nutrition_basis_grams": 237.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 237.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 25.0,
                  "macros": {
                    "kcal": 225.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 25.0
                  },
                  "nutrition_basis_grams": 25.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 589.98,
                "protein_g": 74.18,
                "carbs_g": 0.0,
                "fat_g": 32.49
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 227.0,
                  "macros": {
                    "kcal": 46.46,
                    "protein_g": 3.23,
                    "carbs_g": 10.18,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 202.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 202.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 81.32,
                "protein_g": 4.35,
                "carbs_g": 11.95,
                "fat_g": 3.14
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 678.15,
          "protein_g": 79.38,
          "carbs_g": 13.22,
          "fat_g": 35.7
        },
        "delta_vs_target": {
          "kcal": -7.15,
          "protein_g": 0.58,
          "carbs_g": 0.24,
          "fat_g": 0.62
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D091",
        "name": "Frango grelhado com limão e alho + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 320.5,
                  "macros": {
                    "kcal": 360.36,
                    "protein_g": 73.24,
                    "carbs_g": 0.0,
                    "fat_g": 7.39
                  },
                  "nutrition_basis_grams": 234.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 234.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 26.0,
                  "macros": {
                    "kcal": 234.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 26.0
                  },
                  "nutrition_basis_grams": 26.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 594.36,
                "protein_g": 73.24,
                "carbs_g": 0.0,
                "fat_g": 33.39
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 1053.6,
                  "macros": {
                    "kcal": 50.15,
                    "protein_g": 3.57,
                    "carbs_g": 11.74,
                    "fat_g": 0.41
                  },
                  "nutrition_basis_grams": 295.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 295.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 77.03,
                "protein_g": 5.48,
                "carbs_g": 11.89,
                "fat_g": 2.51
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 678.24,
          "protein_g": 79.57,
          "carbs_g": 13.16,
          "fat_g": 35.97
        },
        "delta_vs_target": {
          "kcal": -7.06,
          "protein_g": 0.77,
          "carbs_g": 0.18,
          "fat_g": 0.89
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D092",
        "name": "Frango grelhado com limão e alho + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 328.8,
                  "macros": {
                    "kcal": 369.6,
                    "protein_g": 75.12,
                    "carbs_g": 0.0,
                    "fat_g": 7.58
                  },
                  "nutrition_basis_grams": 240.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 240.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 621.6,
                "protein_g": 75.12,
                "carbs_g": 0.0,
                "fat_g": 35.58
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 1064.3,
                  "macros": {
                    "kcal": 50.66,
                    "protein_g": 3.61,
                    "carbs_g": 11.86,
                    "fat_g": 0.42
                  },
                  "nutrition_basis_grams": 298.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 298.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 50.66,
                "protein_g": 3.61,
                "carbs_g": 11.86,
                "fat_g": 0.42
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 679.11,
          "protein_g": 79.58,
          "carbs_g": 13.13,
          "fat_g": 36.07
        },
        "delta_vs_target": {
          "kcal": -6.19,
          "protein_g": 0.78,
          "carbs_g": 0.15,
          "fat_g": 0.99
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D093",
        "name": "Frango grelhado com limão e alho + Vagem com limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 319.2,
                  "macros": {
                    "kcal": 358.82,
                    "protein_g": 72.93,
                    "carbs_g": 0.0,
                    "fat_g": 7.36
                  },
                  "nutrition_basis_grams": 233.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 233.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 26.0,
                  "macros": {
                    "kcal": 234.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 26.0
                  },
                  "nutrition_basis_grams": 26.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 592.82,
                "protein_g": 72.93,
                "carbs_g": 0.0,
                "fat_g": 33.36
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 260.7,
                  "macros": {
                    "kcal": 53.36,
                    "protein_g": 3.71,
                    "carbs_g": 11.69,
                    "fat_g": 0.35
                  },
                  "nutrition_basis_grams": 232.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 232.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 80.24,
                "protein_g": 5.62,
                "carbs_g": 11.84,
                "fat_g": 2.45
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 679.91,
          "protein_g": 79.4,
          "carbs_g": 13.11,
          "fat_g": 35.88
        },
        "delta_vs_target": {
          "kcal": -5.39,
          "protein_g": 0.6,
          "carbs_g": 0.13,
          "fat_g": 0.8
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D094",
        "name": "Frango grelhado com limão e alho + Berinjela assada com tomate e manjericão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 334.2,
                  "macros": {
                    "kcal": 375.76,
                    "protein_g": 76.37,
                    "carbs_g": 0.0,
                    "fat_g": 7.71
                  },
                  "nutrition_basis_grams": 244.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 244.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 627.76,
                "protein_g": 76.37,
                "carbs_g": 0.0,
                "fat_g": 35.71
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.4,
                    "protein_g": 0.31,
                    "carbs_g": 1.15,
                    "fat_g": 0.05
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 181.9,
                  "macros": {
                    "kcal": 44.46,
                    "protein_g": 1.35,
                    "carbs_g": 10.6,
                    "fat_g": 0.41
                  },
                  "nutrition_basis_grams": 171.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 171.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 49.86,
                "protein_g": 1.66,
                "carbs_g": 11.75,
                "fat_g": 0.46
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 684.47,
          "protein_g": 78.88,
          "carbs_g": 13.02,
          "fat_g": 36.24
        },
        "delta_vs_target": {
          "kcal": -0.83,
          "protein_g": 0.08,
          "carbs_g": 0.04,
          "fat_g": 1.16
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D095",
        "name": "Frango jerk + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 311.0,
                  "macros": {
                    "kcal": 349.58,
                    "protein_g": 71.05,
                    "carbs_g": 0.0,
                    "fat_g": 7.17
                  },
                  "nutrition_basis_grams": 227.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 227.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 601.58,
                "protein_g": 71.05,
                "carbs_g": 0.0,
                "fat_g": 35.17
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 266.0,
                  "macros": {
                    "kcal": 71.82,
                    "protein_g": 7.21,
                    "carbs_g": 11.81,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 266.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 266.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 71.82,
                "protein_g": 7.21,
                "carbs_g": 11.81,
                "fat_g": 1.44
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 680.25,
          "protein_g": 79.11,
          "carbs_g": 13.08,
          "fat_g": 36.68
        },
        "delta_vs_target": {
          "kcal": -5.05,
          "protein_g": 0.31,
          "carbs_g": 0.1,
          "fat_g": 1.6
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D096",
        "name": "Frango jerk + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 324.7,
                  "macros": {
                    "kcal": 364.98,
                    "protein_g": 74.18,
                    "carbs_g": 0.0,
                    "fat_g": 7.49
                  },
                  "nutrition_basis_grams": 237.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 237.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 25.0,
                  "macros": {
                    "kcal": 225.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 25.0
                  },
                  "nutrition_basis_grams": 25.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 589.98,
                "protein_g": 74.18,
                "carbs_g": 0.0,
                "fat_g": 32.49
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 227.0,
                  "macros": {
                    "kcal": 46.46,
                    "protein_g": 3.23,
                    "carbs_g": 10.18,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 202.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 202.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 81.32,
                "protein_g": 4.35,
                "carbs_g": 11.95,
                "fat_g": 3.14
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 678.15,
          "protein_g": 79.38,
          "carbs_g": 13.22,
          "fat_g": 35.7
        },
        "delta_vs_target": {
          "kcal": -7.15,
          "protein_g": 0.58,
          "carbs_g": 0.24,
          "fat_g": 0.62
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D097",
        "name": "Frango jerk + Vagem com gergelim e gengibre + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 327.4,
                  "macros": {
                    "kcal": 368.06,
                    "protein_g": 74.81,
                    "carbs_g": 0.0,
                    "fat_g": 7.55
                  },
                  "nutrition_basis_grams": 239.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 239.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 620.06,
                "protein_g": 74.81,
                "carbs_g": 0.0,
                "fat_g": 35.55
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 262.9,
                  "macros": {
                    "kcal": 53.82,
                    "protein_g": 3.74,
                    "carbs_g": 11.79,
                    "fat_g": 0.35
                  },
                  "nutrition_basis_grams": 234.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 234.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 53.82,
                "protein_g": 3.74,
                "carbs_g": 11.79,
                "fat_g": 0.35
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 680.73,
          "protein_g": 79.4,
          "carbs_g": 13.06,
          "fat_g": 35.97
        },
        "delta_vs_target": {
          "kcal": -4.57,
          "protein_g": 0.6,
          "carbs_g": 0.08,
          "fat_g": 0.89
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D098",
        "name": "Frango jerk + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 320.5,
                  "macros": {
                    "kcal": 360.36,
                    "protein_g": 73.24,
                    "carbs_g": 0.0,
                    "fat_g": 7.39
                  },
                  "nutrition_basis_grams": 234.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 234.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 26.0,
                  "macros": {
                    "kcal": 234.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 26.0
                  },
                  "nutrition_basis_grams": 26.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 594.36,
                "protein_g": 73.24,
                "carbs_g": 0.0,
                "fat_g": 33.39
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 1053.6,
                  "macros": {
                    "kcal": 50.15,
                    "protein_g": 3.57,
                    "carbs_g": 11.74,
                    "fat_g": 0.41
                  },
                  "nutrition_basis_grams": 295.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 295.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 77.03,
                "protein_g": 5.48,
                "carbs_g": 11.89,
                "fat_g": 2.51
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 678.24,
          "protein_g": 79.57,
          "carbs_g": 13.16,
          "fat_g": 35.97
        },
        "delta_vs_target": {
          "kcal": -7.06,
          "protein_g": 0.77,
          "carbs_g": 0.18,
          "fat_g": 0.89
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D099",
        "name": "Frango jerk + Arroz de couve-flor com cominho e coentro + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 326.0,
                  "macros": {
                    "kcal": 366.52,
                    "protein_g": 74.49,
                    "carbs_g": 0.0,
                    "fat_g": 7.52
                  },
                  "nutrition_basis_grams": 238.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 238.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 618.52,
                "protein_g": 74.49,
                "carbs_g": 0.0,
                "fat_g": 35.52
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 326.5,
                  "macros": {
                    "kcal": 54.4,
                    "protein_g": 4.1,
                    "carbs_g": 10.91,
                    "fat_g": 0.64
                  },
                  "nutrition_basis_grams": 320.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 320.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 54.4,
                "protein_g": 4.1,
                "carbs_g": 10.91,
                "fat_g": 0.64
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 679.77,
          "protein_g": 79.44,
          "carbs_g": 12.18,
          "fat_g": 36.23
        },
        "delta_vs_target": {
          "kcal": -5.53,
          "protein_g": 0.64,
          "carbs_g": -0.8,
          "fat_g": 1.15
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D100",
        "name": "Frango jerk + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 328.8,
                  "macros": {
                    "kcal": 369.6,
                    "protein_g": 75.12,
                    "carbs_g": 0.0,
                    "fat_g": 7.58
                  },
                  "nutrition_basis_grams": 240.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 240.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 621.6,
                "protein_g": 75.12,
                "carbs_g": 0.0,
                "fat_g": 35.58
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 1064.3,
                  "macros": {
                    "kcal": 50.66,
                    "protein_g": 3.61,
                    "carbs_g": 11.86,
                    "fat_g": 0.42
                  },
                  "nutrition_basis_grams": 298.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 298.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 50.66,
                "protein_g": 3.61,
                "carbs_g": 11.86,
                "fat_g": 0.42
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 679.11,
          "protein_g": 79.58,
          "carbs_g": 13.13,
          "fat_g": 36.07
        },
        "delta_vs_target": {
          "kcal": -6.19,
          "protein_g": 0.78,
          "carbs_g": 0.15,
          "fat_g": 0.99
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D101",
        "name": "Frango jerk + Berinjela assada com tomate e manjericão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 334.2,
                  "macros": {
                    "kcal": 375.76,
                    "protein_g": 76.37,
                    "carbs_g": 0.0,
                    "fat_g": 7.71
                  },
                  "nutrition_basis_grams": 244.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 244.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 627.76,
                "protein_g": 76.37,
                "carbs_g": 0.0,
                "fat_g": 35.71
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.4,
                    "protein_g": 0.31,
                    "carbs_g": 1.15,
                    "fat_g": 0.05
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 181.9,
                  "macros": {
                    "kcal": 44.46,
                    "protein_g": 1.35,
                    "carbs_g": 10.6,
                    "fat_g": 0.41
                  },
                  "nutrition_basis_grams": 171.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 171.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 49.86,
                "protein_g": 1.66,
                "carbs_g": 11.75,
                "fat_g": 0.46
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 684.47,
          "protein_g": 78.88,
          "carbs_g": 13.02,
          "fat_g": 36.24
        },
        "delta_vs_target": {
          "kcal": -0.83,
          "protein_g": 0.08,
          "carbs_g": 0.04,
          "fat_g": 1.16
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D102",
        "name": "Frango tikka + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 311.0,
                  "macros": {
                    "kcal": 349.58,
                    "protein_g": 71.05,
                    "carbs_g": 0.0,
                    "fat_g": 7.17
                  },
                  "nutrition_basis_grams": 227.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 227.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 27.0,
                  "macros": {
                    "kcal": 243.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 27.0
                  },
                  "nutrition_basis_grams": 27.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 600.23,
                "protein_g": 71.66,
                "carbs_g": 0.28,
                "fat_g": 34.62
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 261.0,
                  "macros": {
                    "kcal": 70.47,
                    "protein_g": 7.07,
                    "carbs_g": 11.59,
                    "fat_g": 1.41
                  },
                  "nutrition_basis_grams": 261.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 261.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 70.47,
                "protein_g": 7.07,
                "carbs_g": 11.59,
                "fat_g": 1.41
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 677.55,
          "protein_g": 79.58,
          "carbs_g": 13.14,
          "fat_g": 36.1
        },
        "delta_vs_target": {
          "kcal": -7.75,
          "protein_g": 0.78,
          "carbs_g": 0.16,
          "fat_g": 1.02
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D103",
        "name": "Frango tikka + Couve-flor assada com especiarias + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 321.9,
                  "macros": {
                    "kcal": 361.9,
                    "protein_g": 73.56,
                    "carbs_g": 0.0,
                    "fat_g": 7.43
                  },
                  "nutrition_basis_grams": 235.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 235.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 621.55,
                "protein_g": 74.17,
                "carbs_g": 0.28,
                "fat_g": 35.88
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 326.5,
                  "macros": {
                    "kcal": 54.4,
                    "protein_g": 4.1,
                    "carbs_g": 10.91,
                    "fat_g": 0.64
                  },
                  "nutrition_basis_grams": 320.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 320.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 54.4,
                "protein_g": 4.1,
                "carbs_g": 10.91,
                "fat_g": 0.64
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 682.8,
          "protein_g": 79.12,
          "carbs_g": 12.46,
          "fat_g": 36.59
        },
        "delta_vs_target": {
          "kcal": -2.5,
          "protein_g": 0.32,
          "carbs_g": -0.52,
          "fat_g": 1.51
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D104",
        "name": "Frango tikka + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 321.9,
                  "macros": {
                    "kcal": 361.9,
                    "protein_g": 73.56,
                    "carbs_g": 0.0,
                    "fat_g": 7.43
                  },
                  "nutrition_basis_grams": 235.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 235.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 25.0,
                  "macros": {
                    "kcal": 225.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 25.0
                  },
                  "nutrition_basis_grams": 25.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 594.55,
                "protein_g": 74.17,
                "carbs_g": 0.28,
                "fat_g": 32.88
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 218.0,
                  "macros": {
                    "kcal": 44.62,
                    "protein_g": 3.1,
                    "carbs_g": 9.78,
                    "fat_g": 0.29
                  },
                  "nutrition_basis_grams": 194.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 194.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 79.48,
                "protein_g": 4.22,
                "carbs_g": 11.55,
                "fat_g": 3.13
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 680.88,
          "protein_g": 79.24,
          "carbs_g": 13.1,
          "fat_g": 36.08
        },
        "delta_vs_target": {
          "kcal": -4.42,
          "protein_g": 0.44,
          "carbs_g": 0.12,
          "fat_g": 1.0
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D105",
        "name": "Frango tikka + Vagem com gergelim e gengibre + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 323.3,
                  "macros": {
                    "kcal": 363.44,
                    "protein_g": 73.87,
                    "carbs_g": 0.0,
                    "fat_g": 7.46
                  },
                  "nutrition_basis_grams": 236.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 236.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 623.09,
                "protein_g": 74.48,
                "carbs_g": 0.28,
                "fat_g": 35.91
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 256.2,
                  "macros": {
                    "kcal": 52.44,
                    "protein_g": 3.65,
                    "carbs_g": 11.49,
                    "fat_g": 0.34
                  },
                  "nutrition_basis_grams": 228.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 228.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 52.44,
                "protein_g": 3.65,
                "carbs_g": 11.49,
                "fat_g": 0.34
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 682.38,
          "protein_g": 78.98,
          "carbs_g": 13.04,
          "fat_g": 36.32
        },
        "delta_vs_target": {
          "kcal": -2.92,
          "protein_g": 0.18,
          "carbs_g": 0.06,
          "fat_g": 1.24
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D106",
        "name": "Frango tikka + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 316.4,
                  "macros": {
                    "kcal": 355.74,
                    "protein_g": 72.3,
                    "carbs_g": 0.0,
                    "fat_g": 7.3
                  },
                  "nutrition_basis_grams": 231.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 231.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 26.0,
                  "macros": {
                    "kcal": 234.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 26.0
                  },
                  "nutrition_basis_grams": 26.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 597.39,
                "protein_g": 72.91,
                "carbs_g": 0.28,
                "fat_g": 33.75
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 1025.0,
                  "macros": {
                    "kcal": 48.79,
                    "protein_g": 3.47,
                    "carbs_g": 11.42,
                    "fat_g": 0.4
                  },
                  "nutrition_basis_grams": 287.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 287.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 75.67,
                "protein_g": 5.38,
                "carbs_g": 11.57,
                "fat_g": 2.5
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 679.91,
          "protein_g": 79.14,
          "carbs_g": 13.12,
          "fat_g": 36.32
        },
        "delta_vs_target": {
          "kcal": -5.39,
          "protein_g": 0.34,
          "carbs_g": 0.14,
          "fat_g": 1.24
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D107",
        "name": "Frango tikka + Arroz de couve-flor com cominho e coentro + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 321.9,
                  "macros": {
                    "kcal": 361.9,
                    "protein_g": 73.56,
                    "carbs_g": 0.0,
                    "fat_g": 7.43
                  },
                  "nutrition_basis_grams": 235.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 235.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 621.55,
                "protein_g": 74.17,
                "carbs_g": 0.28,
                "fat_g": 35.88
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 326.5,
                  "macros": {
                    "kcal": 54.4,
                    "protein_g": 4.1,
                    "carbs_g": 10.91,
                    "fat_g": 0.64
                  },
                  "nutrition_basis_grams": 320.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 320.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 54.4,
                "protein_g": 4.1,
                "carbs_g": 10.91,
                "fat_g": 0.64
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 682.8,
          "protein_g": 79.12,
          "carbs_g": 12.46,
          "fat_g": 36.59
        },
        "delta_vs_target": {
          "kcal": -2.5,
          "protein_g": 0.32,
          "carbs_g": -0.52,
          "fat_g": 1.51
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D108",
        "name": "Frango tikka + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 324.7,
                  "macros": {
                    "kcal": 364.98,
                    "protein_g": 74.18,
                    "carbs_g": 0.0,
                    "fat_g": 7.49
                  },
                  "nutrition_basis_grams": 237.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 237.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 624.63,
                "protein_g": 74.79,
                "carbs_g": 0.28,
                "fat_g": 35.94
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 1035.7,
                  "macros": {
                    "kcal": 49.3,
                    "protein_g": 3.51,
                    "carbs_g": 11.54,
                    "fat_g": 0.41
                  },
                  "nutrition_basis_grams": 290.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 290.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 49.3,
                "protein_g": 3.51,
                "carbs_g": 11.54,
                "fat_g": 0.41
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 680.78,
          "protein_g": 79.15,
          "carbs_g": 13.09,
          "fat_g": 36.42
        },
        "delta_vs_target": {
          "kcal": -4.52,
          "protein_g": 0.35,
          "carbs_g": 0.11,
          "fat_g": 1.34
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D109",
        "name": "Frango ao curry seco + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 311.0,
                  "macros": {
                    "kcal": 349.58,
                    "protein_g": 71.05,
                    "carbs_g": 0.0,
                    "fat_g": 7.17
                  },
                  "nutrition_basis_grams": 227.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 227.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 601.58,
                "protein_g": 71.05,
                "carbs_g": 0.0,
                "fat_g": 35.17
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 266.0,
                  "macros": {
                    "kcal": 71.82,
                    "protein_g": 7.21,
                    "carbs_g": 11.81,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 266.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 266.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 71.82,
                "protein_g": 7.21,
                "carbs_g": 11.81,
                "fat_g": 1.44
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 680.25,
          "protein_g": 79.11,
          "carbs_g": 13.08,
          "fat_g": 36.68
        },
        "delta_vs_target": {
          "kcal": -5.05,
          "protein_g": 0.31,
          "carbs_g": 0.1,
          "fat_g": 1.6
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D110",
        "name": "Frango ao curry seco + Couve-flor assada com especiarias + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 326.0,
                  "macros": {
                    "kcal": 366.52,
                    "protein_g": 74.49,
                    "carbs_g": 0.0,
                    "fat_g": 7.52
                  },
                  "nutrition_basis_grams": 238.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 238.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 618.52,
                "protein_g": 74.49,
                "carbs_g": 0.0,
                "fat_g": 35.52
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 326.5,
                  "macros": {
                    "kcal": 54.4,
                    "protein_g": 4.1,
                    "carbs_g": 10.91,
                    "fat_g": 0.64
                  },
                  "nutrition_basis_grams": 320.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 320.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 54.4,
                "protein_g": 4.1,
                "carbs_g": 10.91,
                "fat_g": 0.64
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 679.77,
          "protein_g": 79.44,
          "carbs_g": 12.18,
          "fat_g": 36.23
        },
        "delta_vs_target": {
          "kcal": -5.53,
          "protein_g": 0.64,
          "carbs_g": -0.8,
          "fat_g": 1.15
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D111",
        "name": "Frango ao curry seco + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 324.7,
                  "macros": {
                    "kcal": 364.98,
                    "protein_g": 74.18,
                    "carbs_g": 0.0,
                    "fat_g": 7.49
                  },
                  "nutrition_basis_grams": 237.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 237.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 25.0,
                  "macros": {
                    "kcal": 225.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 25.0
                  },
                  "nutrition_basis_grams": 25.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 589.98,
                "protein_g": 74.18,
                "carbs_g": 0.0,
                "fat_g": 32.49
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 227.0,
                  "macros": {
                    "kcal": 46.46,
                    "protein_g": 3.23,
                    "carbs_g": 10.18,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 202.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 202.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 81.32,
                "protein_g": 4.35,
                "carbs_g": 11.95,
                "fat_g": 3.14
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 678.15,
          "protein_g": 79.38,
          "carbs_g": 13.22,
          "fat_g": 35.7
        },
        "delta_vs_target": {
          "kcal": -7.15,
          "protein_g": 0.58,
          "carbs_g": 0.24,
          "fat_g": 0.62
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D112",
        "name": "Frango ao curry seco + Vagem com gergelim e gengibre + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 327.4,
                  "macros": {
                    "kcal": 368.06,
                    "protein_g": 74.81,
                    "carbs_g": 0.0,
                    "fat_g": 7.55
                  },
                  "nutrition_basis_grams": 239.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 239.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 620.06,
                "protein_g": 74.81,
                "carbs_g": 0.0,
                "fat_g": 35.55
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S06",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 262.9,
                  "macros": {
                    "kcal": 53.82,
                    "protein_g": 3.74,
                    "carbs_g": 11.79,
                    "fat_g": 0.35
                  },
                  "nutrition_basis_grams": 234.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 234.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 53.82,
                "protein_g": 3.74,
                "carbs_g": 11.79,
                "fat_g": 0.35
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 680.73,
          "protein_g": 79.4,
          "carbs_g": 13.06,
          "fat_g": 35.97
        },
        "delta_vs_target": {
          "kcal": -4.57,
          "protein_g": 0.6,
          "carbs_g": 0.08,
          "fat_g": 0.89
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D113",
        "name": "Frango ao curry seco + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 320.5,
                  "macros": {
                    "kcal": 360.36,
                    "protein_g": 73.24,
                    "carbs_g": 0.0,
                    "fat_g": 7.39
                  },
                  "nutrition_basis_grams": 234.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 234.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 26.0,
                  "macros": {
                    "kcal": 234.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 26.0
                  },
                  "nutrition_basis_grams": 26.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 594.36,
                "protein_g": 73.24,
                "carbs_g": 0.0,
                "fat_g": 33.39
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 1053.6,
                  "macros": {
                    "kcal": 50.15,
                    "protein_g": 3.57,
                    "carbs_g": 11.74,
                    "fat_g": 0.41
                  },
                  "nutrition_basis_grams": 295.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 295.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 77.03,
                "protein_g": 5.48,
                "carbs_g": 11.89,
                "fat_g": 2.51
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 678.24,
          "protein_g": 79.57,
          "carbs_g": 13.16,
          "fat_g": 35.97
        },
        "delta_vs_target": {
          "kcal": -7.06,
          "protein_g": 0.77,
          "carbs_g": 0.18,
          "fat_g": 0.89
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D114",
        "name": "Frango ao curry seco + Arroz de couve-flor com cominho e coentro + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 326.0,
                  "macros": {
                    "kcal": 366.52,
                    "protein_g": 74.49,
                    "carbs_g": 0.0,
                    "fat_g": 7.52
                  },
                  "nutrition_basis_grams": 238.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 238.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 618.52,
                "protein_g": 74.49,
                "carbs_g": 0.0,
                "fat_g": 35.52
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 326.5,
                  "macros": {
                    "kcal": 54.4,
                    "protein_g": 4.1,
                    "carbs_g": 10.91,
                    "fat_g": 0.64
                  },
                  "nutrition_basis_grams": 320.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 320.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 54.4,
                "protein_g": 4.1,
                "carbs_g": 10.91,
                "fat_g": 0.64
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 679.77,
          "protein_g": 79.44,
          "carbs_g": 12.18,
          "fat_g": 36.23
        },
        "delta_vs_target": {
          "kcal": -5.53,
          "protein_g": 0.64,
          "carbs_g": -0.8,
          "fat_g": 1.15
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D115",
        "name": "Frango ao curry seco + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 328.8,
                  "macros": {
                    "kcal": 369.6,
                    "protein_g": 75.12,
                    "carbs_g": 0.0,
                    "fat_g": 7.58
                  },
                  "nutrition_basis_grams": 240.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 240.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 621.6,
                "protein_g": 75.12,
                "carbs_g": 0.0,
                "fat_g": 35.58
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 1064.3,
                  "macros": {
                    "kcal": 50.66,
                    "protein_g": 3.61,
                    "carbs_g": 11.86,
                    "fat_g": 0.42
                  },
                  "nutrition_basis_grams": 298.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 298.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 50.66,
                "protein_g": 3.61,
                "carbs_g": 11.86,
                "fat_g": 0.42
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 679.11,
          "protein_g": 79.58,
          "carbs_g": 13.13,
          "fat_g": 36.07
        },
        "delta_vs_target": {
          "kcal": -6.19,
          "protein_g": 0.78,
          "carbs_g": 0.15,
          "fat_g": 0.99
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D116",
        "name": "Almôndegas de frango com limão e manjericão + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M13",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 311.0,
                  "macros": {
                    "kcal": 349.58,
                    "protein_g": 71.05,
                    "carbs_g": 0.0,
                    "fat_g": 7.17
                  },
                  "nutrition_basis_grams": 227.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 227.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 601.58,
                "protein_g": 71.05,
                "carbs_g": 0.0,
                "fat_g": 35.17
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 266.0,
                  "macros": {
                    "kcal": 71.82,
                    "protein_g": 7.21,
                    "carbs_g": 11.81,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 266.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 266.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 71.82,
                "protein_g": 7.21,
                "carbs_g": 11.81,
                "fat_g": 1.44
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 680.25,
          "protein_g": 79.11,
          "carbs_g": 13.08,
          "fat_g": 36.68
        },
        "delta_vs_target": {
          "kcal": -5.05,
          "protein_g": 0.31,
          "carbs_g": 0.1,
          "fat_g": 1.6
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D117",
        "name": "Almôndegas de frango com limão e manjericão + Brócolis com ervas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M13",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 311.0,
                  "macros": {
                    "kcal": 349.58,
                    "protein_g": 71.05,
                    "carbs_g": 0.0,
                    "fat_g": 7.17
                  },
                  "nutrition_basis_grams": 227.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 227.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 601.58,
                "protein_g": 71.05,
                "carbs_g": 0.0,
                "fat_g": 35.17
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 266.0,
                  "macros": {
                    "kcal": 71.82,
                    "protein_g": 7.21,
                    "carbs_g": 11.81,
                    "fat_g": 1.44
                  },
                  "nutrition_basis_grams": 266.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 266.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 71.82,
                "protein_g": 7.21,
                "carbs_g": 11.81,
                "fat_g": 1.44
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 680.25,
          "protein_g": 79.11,
          "carbs_g": 13.08,
          "fat_g": 36.68
        },
        "delta_vs_target": {
          "kcal": -5.05,
          "protein_g": 0.31,
          "carbs_g": 0.1,
          "fat_g": 1.6
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D118",
        "name": "Almôndegas de frango com limão e manjericão + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M13",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 324.7,
                  "macros": {
                    "kcal": 364.98,
                    "protein_g": 74.18,
                    "carbs_g": 0.0,
                    "fat_g": 7.49
                  },
                  "nutrition_basis_grams": 237.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 237.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 25.0,
                  "macros": {
                    "kcal": 225.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 25.0
                  },
                  "nutrition_basis_grams": 25.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 589.98,
                "protein_g": 74.18,
                "carbs_g": 0.0,
                "fat_g": 32.49
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 227.0,
                  "macros": {
                    "kcal": 46.46,
                    "protein_g": 3.23,
                    "carbs_g": 10.18,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 202.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 202.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 81.32,
                "protein_g": 4.35,
                "carbs_g": 11.95,
                "fat_g": 3.14
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 678.15,
          "protein_g": 79.38,
          "carbs_g": 13.22,
          "fat_g": 35.7
        },
        "delta_vs_target": {
          "kcal": -7.15,
          "protein_g": 0.58,
          "carbs_g": 0.24,
          "fat_g": 0.62
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D119",
        "name": "Almôndegas de frango com limão e manjericão + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M13",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 320.5,
                  "macros": {
                    "kcal": 360.36,
                    "protein_g": 73.24,
                    "carbs_g": 0.0,
                    "fat_g": 7.39
                  },
                  "nutrition_basis_grams": 234.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 234.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 26.0,
                  "macros": {
                    "kcal": 234.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 26.0
                  },
                  "nutrition_basis_grams": 26.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 594.36,
                "protein_g": 73.24,
                "carbs_g": 0.0,
                "fat_g": 33.39
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 1053.6,
                  "macros": {
                    "kcal": 50.15,
                    "protein_g": 3.57,
                    "carbs_g": 11.74,
                    "fat_g": 0.41
                  },
                  "nutrition_basis_grams": 295.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 295.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 77.03,
                "protein_g": 5.48,
                "carbs_g": 11.89,
                "fat_g": 2.51
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 678.24,
          "protein_g": 79.57,
          "carbs_g": 13.16,
          "fat_g": 35.97
        },
        "delta_vs_target": {
          "kcal": -7.06,
          "protein_g": 0.77,
          "carbs_g": 0.18,
          "fat_g": 0.89
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D120",
        "name": "Almôndegas de frango com limão e manjericão + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M13",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 328.8,
                  "macros": {
                    "kcal": 369.6,
                    "protein_g": 75.12,
                    "carbs_g": 0.0,
                    "fat_g": 7.58
                  },
                  "nutrition_basis_grams": 240.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 240.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 621.6,
                "protein_g": 75.12,
                "carbs_g": 0.0,
                "fat_g": 35.58
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 1064.3,
                  "macros": {
                    "kcal": 50.66,
                    "protein_g": 3.61,
                    "carbs_g": 11.86,
                    "fat_g": 0.42
                  },
                  "nutrition_basis_grams": 298.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 298.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 50.66,
                "protein_g": 3.61,
                "carbs_g": 11.86,
                "fat_g": 0.42
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 679.11,
          "protein_g": 79.58,
          "carbs_g": 13.13,
          "fat_g": 36.07
        },
        "delta_vs_target": {
          "kcal": -6.19,
          "protein_g": 0.78,
          "carbs_g": 0.15,
          "fat_g": 0.99
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D121",
        "name": "Almôndegas de frango com limão e manjericão + Vagem com limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M13",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 319.2,
                  "macros": {
                    "kcal": 358.82,
                    "protein_g": 72.93,
                    "carbs_g": 0.0,
                    "fat_g": 7.36
                  },
                  "nutrition_basis_grams": 233.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 233.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 26.0,
                  "macros": {
                    "kcal": 234.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 26.0
                  },
                  "nutrition_basis_grams": 26.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 592.82,
                "protein_g": 72.93,
                "carbs_g": 0.0,
                "fat_g": 33.36
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 260.7,
                  "macros": {
                    "kcal": 53.36,
                    "protein_g": 3.71,
                    "carbs_g": 11.69,
                    "fat_g": 0.35
                  },
                  "nutrition_basis_grams": 232.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 232.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 80.24,
                "protein_g": 5.62,
                "carbs_g": 11.84,
                "fat_g": 2.45
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 679.91,
          "protein_g": 79.4,
          "carbs_g": 13.11,
          "fat_g": 35.88
        },
        "delta_vs_target": {
          "kcal": -5.39,
          "protein_g": 0.6,
          "carbs_g": 0.13,
          "fat_g": 0.8
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D122",
        "name": "Almôndegas de frango com limão e manjericão + Berinjela assada com tomate e manjericão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M13",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING006",
                  "ingredient_name": "Peito de frango cru, sem pele e sem osso, pronto para cozinhar",
                  "grams": 334.2,
                  "macros": {
                    "kcal": 375.76,
                    "protein_g": 76.37,
                    "carbs_g": 0.0,
                    "fat_g": 7.71
                  },
                  "nutrition_basis_grams": 244.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.73,
                    "expected_nutrition_basis_grams": 244.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_high_proxy",
                    "basis": "USDA FBG proxy: boneless chicken breast tenderloins; 1 lb raw AP = 0.73 lb cooked chicken meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 627.76,
                "protein_g": 76.37,
                "carbs_g": 0.0,
                "fat_g": 35.71
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.4,
                    "protein_g": 0.31,
                    "carbs_g": 1.15,
                    "fat_g": 0.05
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 181.9,
                  "macros": {
                    "kcal": 44.46,
                    "protein_g": 1.35,
                    "carbs_g": 10.6,
                    "fat_g": 0.41
                  },
                  "nutrition_basis_grams": 171.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 171.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 49.86,
                "protein_g": 1.66,
                "carbs_g": 11.75,
                "fat_g": 0.46
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 684.47,
          "protein_g": 78.88,
          "carbs_g": 13.02,
          "fat_g": 36.24
        },
        "delta_vs_target": {
          "kcal": -0.83,
          "protein_g": 0.08,
          "carbs_g": 0.04,
          "fat_g": 1.16
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D123",
        "name": "Tilápia com alho e páprica + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M14",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 441.4,
                  "macros": {
                    "kcal": 346.08,
                    "protein_g": 71.38,
                    "carbs_g": 0.0,
                    "fat_g": 6.55
                  },
                  "nutrition_basis_grams": 309.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 309.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 598.08,
                "protein_g": 71.38,
                "carbs_g": 0.0,
                "fat_g": 34.55
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 269.0,
                  "macros": {
                    "kcal": 72.63,
                    "protein_g": 7.29,
                    "carbs_g": 11.94,
                    "fat_g": 1.45
                  },
                  "nutrition_basis_grams": 269.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 269.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 72.63,
                "protein_g": 7.29,
                "carbs_g": 11.94,
                "fat_g": 1.45
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 677.56,
          "protein_g": 79.52,
          "carbs_g": 13.21,
          "fat_g": 36.07
        },
        "delta_vs_target": {
          "kcal": -7.74,
          "protein_g": 0.72,
          "carbs_g": 0.23,
          "fat_g": 0.99
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D124",
        "name": "Tilápia com alho e páprica + Purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M14",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 458.6,
                  "macros": {
                    "kcal": 359.52,
                    "protein_g": 74.15,
                    "carbs_g": 0.0,
                    "fat_g": 6.81
                  },
                  "nutrition_basis_grams": 321.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 321.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 29.0,
                  "macros": {
                    "kcal": 261.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 29.0
                  },
                  "nutrition_basis_grams": 29.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 620.52,
                "protein_g": 74.15,
                "carbs_g": 0.0,
                "fat_g": 35.81
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 326.5,
                  "macros": {
                    "kcal": 54.4,
                    "protein_g": 4.1,
                    "carbs_g": 10.91,
                    "fat_g": 0.64
                  },
                  "nutrition_basis_grams": 320.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 320.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 54.4,
                "protein_g": 4.1,
                "carbs_g": 10.91,
                "fat_g": 0.64
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 681.77,
          "protein_g": 79.1,
          "carbs_g": 12.18,
          "fat_g": 36.52
        },
        "delta_vs_target": {
          "kcal": -3.53,
          "protein_g": 0.3,
          "carbs_g": -0.8,
          "fat_g": 1.44
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D125",
        "name": "Tilápia com alho e páprica + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M14",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 458.6,
                  "macros": {
                    "kcal": 359.52,
                    "protein_g": 74.15,
                    "carbs_g": 0.0,
                    "fat_g": 6.81
                  },
                  "nutrition_basis_grams": 321.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 321.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 26.0,
                  "macros": {
                    "kcal": 234.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 26.0
                  },
                  "nutrition_basis_grams": 26.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 593.52,
                "protein_g": 74.15,
                "carbs_g": 0.0,
                "fat_g": 32.81
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 223.6,
                  "macros": {
                    "kcal": 45.77,
                    "protein_g": 3.18,
                    "carbs_g": 10.03,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 199.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 199.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 80.63,
                "protein_g": 4.3,
                "carbs_g": 11.8,
                "fat_g": 3.14
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 681.0,
          "protein_g": 79.3,
          "carbs_g": 13.07,
          "fat_g": 36.02
        },
        "delta_vs_target": {
          "kcal": -4.3,
          "protein_g": 0.5,
          "carbs_g": 0.09,
          "fat_g": 0.94
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D126",
        "name": "Tilápia com alho e páprica + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M14",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 451.4,
                  "macros": {
                    "kcal": 353.92,
                    "protein_g": 73.0,
                    "carbs_g": 0.0,
                    "fat_g": 6.7
                  },
                  "nutrition_basis_grams": 316.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 316.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 27.0,
                  "macros": {
                    "kcal": 243.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 27.0
                  },
                  "nutrition_basis_grams": 27.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 596.92,
                "protein_g": 73.0,
                "carbs_g": 0.0,
                "fat_g": 33.7
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 1046.4,
                  "macros": {
                    "kcal": 49.81,
                    "protein_g": 3.55,
                    "carbs_g": 11.66,
                    "fat_g": 0.41
                  },
                  "nutrition_basis_grams": 293.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 293.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 76.69,
                "protein_g": 5.46,
                "carbs_g": 11.81,
                "fat_g": 2.51
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 680.46,
          "protein_g": 79.31,
          "carbs_g": 13.08,
          "fat_g": 36.28
        },
        "delta_vs_target": {
          "kcal": -4.84,
          "protein_g": 0.51,
          "carbs_g": 0.1,
          "fat_g": 1.2
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D127",
        "name": "Tilápia com alho e páprica + Arroz de couve-flor com cominho e coentro + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M14",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 458.6,
                  "macros": {
                    "kcal": 359.52,
                    "protein_g": 74.15,
                    "carbs_g": 0.0,
                    "fat_g": 6.81
                  },
                  "nutrition_basis_grams": 321.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 321.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 29.0,
                  "macros": {
                    "kcal": 261.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 29.0
                  },
                  "nutrition_basis_grams": 29.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 620.52,
                "protein_g": 74.15,
                "carbs_g": 0.0,
                "fat_g": 35.81
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 326.5,
                  "macros": {
                    "kcal": 54.4,
                    "protein_g": 4.1,
                    "carbs_g": 10.91,
                    "fat_g": 0.64
                  },
                  "nutrition_basis_grams": 320.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 320.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 54.4,
                "protein_g": 4.1,
                "carbs_g": 10.91,
                "fat_g": 0.64
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 681.77,
          "protein_g": 79.1,
          "carbs_g": 12.18,
          "fat_g": 36.52
        },
        "delta_vs_target": {
          "kcal": -3.53,
          "protein_g": 0.3,
          "carbs_g": -0.8,
          "fat_g": 1.44
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D128",
        "name": "Tilápia com alho e páprica + Vagem com limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M14",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 448.6,
                  "macros": {
                    "kcal": 351.68,
                    "protein_g": 72.53,
                    "carbs_g": 0.0,
                    "fat_g": 6.66
                  },
                  "nutrition_basis_grams": 314.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 314.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 27.0,
                  "macros": {
                    "kcal": 243.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 27.0
                  },
                  "nutrition_basis_grams": 27.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 594.68,
                "protein_g": 72.53,
                "carbs_g": 0.0,
                "fat_g": 33.66
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 260.7,
                  "macros": {
                    "kcal": 53.36,
                    "protein_g": 3.71,
                    "carbs_g": 11.69,
                    "fat_g": 0.35
                  },
                  "nutrition_basis_grams": 232.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 232.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 80.24,
                "protein_g": 5.62,
                "carbs_g": 11.84,
                "fat_g": 2.45
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 681.77,
          "protein_g": 79.0,
          "carbs_g": 13.11,
          "fat_g": 36.18
        },
        "delta_vs_target": {
          "kcal": -3.53,
          "protein_g": 0.2,
          "carbs_g": 0.13,
          "fat_g": 1.1
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D129",
        "name": "Tilápia com alho e páprica + Berinjela assada com tomate e manjericão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M14",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 474.3,
                  "macros": {
                    "kcal": 371.84,
                    "protein_g": 76.69,
                    "carbs_g": 0.0,
                    "fat_g": 7.04
                  },
                  "nutrition_basis_grams": 332.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 332.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 28.0,
                  "macros": {
                    "kcal": 252.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 28.0
                  },
                  "nutrition_basis_grams": 28.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 623.84,
                "protein_g": 76.69,
                "carbs_g": 0.0,
                "fat_g": 35.04
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.4,
                    "protein_g": 0.31,
                    "carbs_g": 1.15,
                    "fat_g": 0.05
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 184.0,
                  "macros": {
                    "kcal": 44.98,
                    "protein_g": 1.37,
                    "carbs_g": 10.73,
                    "fat_g": 0.42
                  },
                  "nutrition_basis_grams": 173.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 173.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 50.38,
                "protein_g": 1.68,
                "carbs_g": 11.88,
                "fat_g": 0.47
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 681.07,
          "protein_g": 79.22,
          "carbs_g": 13.15,
          "fat_g": 35.58
        },
        "delta_vs_target": {
          "kcal": -4.23,
          "protein_g": 0.42,
          "carbs_g": 0.17,
          "fat_g": 0.5
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D130",
        "name": "Tilápia ao parmesão na air fryer/forno + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M15",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 35.84,
                    "protein_g": 2.55,
                    "carbs_g": 0.2,
                    "fat_g": 2.8
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 424.3,
                  "macros": {
                    "kcal": 332.64,
                    "protein_g": 68.61,
                    "carbs_g": 0.0,
                    "fat_g": 6.3
                  },
                  "nutrition_basis_grams": 297.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 297.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 26.0,
                  "macros": {
                    "kcal": 234.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 26.0
                  },
                  "nutrition_basis_grams": 26.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 602.48,
                "protein_g": 71.16,
                "carbs_g": 0.2,
                "fat_g": 35.1
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 262.0,
                  "macros": {
                    "kcal": 70.74,
                    "protein_g": 7.1,
                    "carbs_g": 11.63,
                    "fat_g": 1.41
                  },
                  "nutrition_basis_grams": 262.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 262.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 70.74,
                "protein_g": 7.1,
                "carbs_g": 11.63,
                "fat_g": 1.41
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 680.07,
          "protein_g": 79.11,
          "carbs_g": 13.1,
          "fat_g": 36.58
        },
        "delta_vs_target": {
          "kcal": -5.23,
          "protein_g": 0.31,
          "carbs_g": 0.12,
          "fat_g": 1.5
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D131",
        "name": "Tilápia ao parmesão na air fryer/forno + Purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M15",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 35.84,
                    "protein_g": 2.55,
                    "carbs_g": 0.2,
                    "fat_g": 2.8
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 444.3,
                  "macros": {
                    "kcal": 348.32,
                    "protein_g": 71.84,
                    "carbs_g": 0.0,
                    "fat_g": 6.59
                  },
                  "nutrition_basis_grams": 311.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 311.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 26.0,
                  "macros": {
                    "kcal": 234.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 26.0
                  },
                  "nutrition_basis_grams": 26.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 618.16,
                "protein_g": 74.39,
                "carbs_g": 0.2,
                "fat_g": 35.39
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 326.5,
                  "macros": {
                    "kcal": 54.4,
                    "protein_g": 4.1,
                    "carbs_g": 10.91,
                    "fat_g": 0.64
                  },
                  "nutrition_basis_grams": 320.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 320.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 54.4,
                "protein_g": 4.1,
                "carbs_g": 10.91,
                "fat_g": 0.64
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 679.41,
          "protein_g": 79.34,
          "carbs_g": 12.38,
          "fat_g": 36.1
        },
        "delta_vs_target": {
          "kcal": -5.89,
          "protein_g": 0.54,
          "carbs_g": -0.6,
          "fat_g": 1.02
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D132",
        "name": "Tilápia ao parmesão na air fryer/forno + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M15",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 35.84,
                    "protein_g": 2.55,
                    "carbs_g": 0.2,
                    "fat_g": 2.8
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 444.3,
                  "macros": {
                    "kcal": 348.32,
                    "protein_g": 71.84,
                    "carbs_g": 0.0,
                    "fat_g": 6.59
                  },
                  "nutrition_basis_grams": 311.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 311.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 23.0,
                  "macros": {
                    "kcal": 207.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 23.0
                  },
                  "nutrition_basis_grams": 23.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 591.16,
                "protein_g": 74.39,
                "carbs_g": 0.2,
                "fat_g": 32.39
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 221.3,
                  "macros": {
                    "kcal": 45.31,
                    "protein_g": 3.15,
                    "carbs_g": 9.93,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 197.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 197.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 80.17,
                "protein_g": 4.27,
                "carbs_g": 11.7,
                "fat_g": 3.14
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 678.18,
          "protein_g": 79.51,
          "carbs_g": 13.17,
          "fat_g": 35.6
        },
        "delta_vs_target": {
          "kcal": -7.12,
          "protein_g": 0.71,
          "carbs_g": 0.19,
          "fat_g": 0.52
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D133",
        "name": "Tilápia ao parmesão na air fryer/forno + Couve-flor assada com especiarias + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M15",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 35.84,
                    "protein_g": 2.55,
                    "carbs_g": 0.2,
                    "fat_g": 2.8
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 444.3,
                  "macros": {
                    "kcal": 348.32,
                    "protein_g": 71.84,
                    "carbs_g": 0.0,
                    "fat_g": 6.59
                  },
                  "nutrition_basis_grams": 311.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 311.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 26.0,
                  "macros": {
                    "kcal": 234.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 26.0
                  },
                  "nutrition_basis_grams": 26.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 618.16,
                "protein_g": 74.39,
                "carbs_g": 0.2,
                "fat_g": 35.39
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S04",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 326.5,
                  "macros": {
                    "kcal": 54.4,
                    "protein_g": 4.1,
                    "carbs_g": 10.91,
                    "fat_g": 0.64
                  },
                  "nutrition_basis_grams": 320.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 320.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 54.4,
                "protein_g": 4.1,
                "carbs_g": 10.91,
                "fat_g": 0.64
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 679.41,
          "protein_g": 79.34,
          "carbs_g": 12.38,
          "fat_g": 36.1
        },
        "delta_vs_target": {
          "kcal": -5.89,
          "protein_g": 0.54,
          "carbs_g": -0.6,
          "fat_g": 1.02
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D134",
        "name": "Tilápia ao parmesão na air fryer/forno + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M15",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 35.84,
                    "protein_g": 2.55,
                    "carbs_g": 0.2,
                    "fat_g": 2.8
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 448.6,
                  "macros": {
                    "kcal": 351.68,
                    "protein_g": 72.53,
                    "carbs_g": 0.0,
                    "fat_g": 6.66
                  },
                  "nutrition_basis_grams": 314.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 314.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 26.0,
                  "macros": {
                    "kcal": 234.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 26.0
                  },
                  "nutrition_basis_grams": 26.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 621.52,
                "protein_g": 75.08,
                "carbs_g": 0.2,
                "fat_g": 35.46
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 1050.0,
                  "macros": {
                    "kcal": 49.98,
                    "protein_g": 3.56,
                    "carbs_g": 11.7,
                    "fat_g": 0.41
                  },
                  "nutrition_basis_grams": 294.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 294.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 49.98,
                "protein_g": 3.56,
                "carbs_g": 11.7,
                "fat_g": 0.41
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 678.35,
          "protein_g": 79.49,
          "carbs_g": 13.17,
          "fat_g": 35.94
        },
        "delta_vs_target": {
          "kcal": -6.95,
          "protein_g": 0.69,
          "carbs_g": 0.19,
          "fat_g": 0.86
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D135",
        "name": "Tilápia ao parmesão na air fryer/forno + Arroz de couve-flor com cominho e coentro + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M15",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 35.84,
                    "protein_g": 2.55,
                    "carbs_g": 0.2,
                    "fat_g": 2.8
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 444.3,
                  "macros": {
                    "kcal": 348.32,
                    "protein_g": 71.84,
                    "carbs_g": 0.0,
                    "fat_g": 6.59
                  },
                  "nutrition_basis_grams": 311.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 311.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 26.0,
                  "macros": {
                    "kcal": 234.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 26.0
                  },
                  "nutrition_basis_grams": 26.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 618.16,
                "protein_g": 74.39,
                "carbs_g": 0.2,
                "fat_g": 35.39
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S09",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 326.5,
                  "macros": {
                    "kcal": 54.4,
                    "protein_g": 4.1,
                    "carbs_g": 10.91,
                    "fat_g": 0.64
                  },
                  "nutrition_basis_grams": 320.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 320.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 54.4,
                "protein_g": 4.1,
                "carbs_g": 10.91,
                "fat_g": 0.64
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 679.41,
          "protein_g": 79.34,
          "carbs_g": 12.38,
          "fat_g": 36.1
        },
        "delta_vs_target": {
          "kcal": -5.89,
          "protein_g": 0.54,
          "carbs_g": -0.6,
          "fat_g": 1.02
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D136",
        "name": "Tilápia ao parmesão na air fryer/forno + Berinjela assada com tomate e manjericão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M15",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 8.0,
                  "macros": {
                    "kcal": 35.84,
                    "protein_g": 2.55,
                    "carbs_g": 0.2,
                    "fat_g": 2.8
                  },
                  "nutrition_basis_grams": 8.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING010",
                  "ingredient_name": "Filé de tilápia cru, sem pele, pronto para cozinhar",
                  "grams": 457.1,
                  "macros": {
                    "kcal": 358.4,
                    "protein_g": 73.92,
                    "carbs_g": 0.0,
                    "fat_g": 6.78
                  },
                  "nutrition_basis_grams": 320.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.7,
                    "expected_nutrition_basis_grams": 320.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "medium_proxy",
                    "basis": "USDA FBG generic fish-fillet proxy: fresh/frozen fish fillets; 1 lb raw AP = 0.70 lb cooked fish.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 26.0,
                  "macros": {
                    "kcal": 234.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 26.0
                  },
                  "nutrition_basis_grams": 26.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 628.24,
                "protein_g": 76.47,
                "carbs_g": 0.2,
                "fat_g": 35.58
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S12",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING023",
                  "ingredient_name": "Tomate cru",
                  "grams": 30.0,
                  "macros": {
                    "kcal": 5.4,
                    "protein_g": 0.31,
                    "carbs_g": 1.15,
                    "fat_g": 0.05
                  },
                  "nutrition_basis_grams": 30.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING020",
                  "ingredient_name": "Berinjela crua, sem pedúnculo, em cubos ou fatias, pronta para cozinhar",
                  "grams": 178.7,
                  "macros": {
                    "kcal": 43.68,
                    "protein_g": 1.33,
                    "carbs_g": 10.42,
                    "fat_g": 0.4
                  },
                  "nutrition_basis_grams": 168.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.94,
                    "expected_nutrition_basis_grams": 168.0,
                    "source_id": "SRC-YIELD-USDA-AH102",
                    "quality": "medium",
                    "basis": "USDA Agriculture Handbook 102: unpared sliced/cubed eggplant steamed yield 94% by weight.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 49.08,
                "protein_g": 1.64,
                "carbs_g": 11.57,
                "fat_g": 0.45
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 684.17,
          "protein_g": 78.96,
          "carbs_g": 13.04,
          "fat_g": 36.1
        },
        "delta_vs_target": {
          "kcal": -1.13,
          "protein_g": 0.16,
          "carbs_g": 0.06,
          "fat_g": 1.02
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D137",
        "name": "Lombo suíno com limão, alho e alecrim + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M16",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 312.5,
                  "macros": {
                    "kcal": 400.0,
                    "protein_g": 71.4,
                    "carbs_g": 0.0,
                    "fat_g": 12.8
                  },
                  "nutrition_basis_grams": 200.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 200.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 598.0,
                "protein_g": 71.4,
                "carbs_g": 0.0,
                "fat_g": 34.8
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 269.0,
                  "macros": {
                    "kcal": 72.63,
                    "protein_g": 7.29,
                    "carbs_g": 11.94,
                    "fat_g": 1.45
                  },
                  "nutrition_basis_grams": 269.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 269.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 72.63,
                "protein_g": 7.29,
                "carbs_g": 11.94,
                "fat_g": 1.45
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 677.48,
          "protein_g": 79.54,
          "carbs_g": 13.21,
          "fat_g": 36.32
        },
        "delta_vs_target": {
          "kcal": -7.82,
          "protein_g": 0.74,
          "carbs_g": 0.23,
          "fat_g": 1.24
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D138",
        "name": "Lombo suíno com limão, alho e alecrim + Purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M16",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 326.6,
                  "macros": {
                    "kcal": 418.0,
                    "protein_g": 74.61,
                    "carbs_g": 0.0,
                    "fat_g": 13.38
                  },
                  "nutrition_basis_grams": 209.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 209.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 616.0,
                "protein_g": 74.61,
                "carbs_g": 0.0,
                "fat_g": 35.38
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 326.5,
                  "macros": {
                    "kcal": 54.4,
                    "protein_g": 4.1,
                    "carbs_g": 10.91,
                    "fat_g": 0.64
                  },
                  "nutrition_basis_grams": 320.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 320.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 54.4,
                "protein_g": 4.1,
                "carbs_g": 10.91,
                "fat_g": 0.64
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 677.25,
          "protein_g": 79.56,
          "carbs_g": 12.18,
          "fat_g": 36.09
        },
        "delta_vs_target": {
          "kcal": -8.05,
          "protein_g": 0.76,
          "carbs_g": -0.8,
          "fat_g": 1.01
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D139",
        "name": "Lombo suíno com limão, alho e alecrim + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M16",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 323.4,
                  "macros": {
                    "kcal": 414.0,
                    "protein_g": 73.9,
                    "carbs_g": 0.0,
                    "fat_g": 13.25
                  },
                  "nutrition_basis_grams": 207.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 207.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 180.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 20.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 594.0,
                "protein_g": 73.9,
                "carbs_g": 0.0,
                "fat_g": 33.25
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 223.6,
                  "macros": {
                    "kcal": 45.77,
                    "protein_g": 3.18,
                    "carbs_g": 10.03,
                    "fat_g": 0.3
                  },
                  "nutrition_basis_grams": 199.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 199.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 80.63,
                "protein_g": 4.3,
                "carbs_g": 11.8,
                "fat_g": 3.14
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 681.48,
          "protein_g": 79.05,
          "carbs_g": 13.07,
          "fat_g": 36.46
        },
        "delta_vs_target": {
          "kcal": -3.82,
          "protein_g": 0.25,
          "carbs_g": 0.09,
          "fat_g": 1.38
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D140",
        "name": "Lombo suíno com limão, alho e alecrim + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M16",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 318.8,
                  "macros": {
                    "kcal": 408.0,
                    "protein_g": 72.83,
                    "carbs_g": 0.0,
                    "fat_g": 13.06
                  },
                  "nutrition_basis_grams": 204.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 204.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 21.0,
                  "macros": {
                    "kcal": 189.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 21.0
                  },
                  "nutrition_basis_grams": 21.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 597.0,
                "protein_g": 72.83,
                "carbs_g": 0.0,
                "fat_g": 34.06
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 1050.0,
                  "macros": {
                    "kcal": 49.98,
                    "protein_g": 3.56,
                    "carbs_g": 11.7,
                    "fat_g": 0.41
                  },
                  "nutrition_basis_grams": 294.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 294.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 76.86,
                "protein_g": 5.47,
                "carbs_g": 11.85,
                "fat_g": 2.51
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 680.71,
          "protein_g": 79.15,
          "carbs_g": 13.12,
          "fat_g": 36.64
        },
        "delta_vs_target": {
          "kcal": -4.59,
          "protein_g": 0.35,
          "carbs_g": 0.14,
          "fat_g": 1.56
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D141",
        "name": "Lombo suíno com limão, alho e alecrim + Cogumelos ao alho e ervas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M16",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 309.4,
                  "macros": {
                    "kcal": 396.0,
                    "protein_g": 70.69,
                    "carbs_g": 0.0,
                    "fat_g": 12.67
                  },
                  "nutrition_basis_grams": 198.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 198.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 21.0,
                  "macros": {
                    "kcal": 189.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 21.0
                  },
                  "nutrition_basis_grams": 21.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 585.0,
                "protein_g": 70.69,
                "carbs_g": 0.0,
                "fat_g": 33.67
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S08",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 581.8,
                  "macros": {
                    "kcal": 97.28,
                    "protein_g": 6.73,
                    "carbs_g": 11.55,
                    "fat_g": 1.1
                  },
                  "nutrition_basis_grams": 256.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 256.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 97.28,
                "protein_g": 6.73,
                "carbs_g": 11.55,
                "fat_g": 1.1
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 689.13,
          "protein_g": 78.27,
          "carbs_g": 12.82,
          "fat_g": 34.84
        },
        "delta_vs_target": {
          "kcal": 3.83,
          "protein_g": -0.53,
          "carbs_g": -0.16,
          "fat_g": -0.24
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D142",
        "name": "Lombo suíno com limão, alho e alecrim + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M16",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 329.7,
                  "macros": {
                    "kcal": 422.0,
                    "protein_g": 75.33,
                    "carbs_g": 0.0,
                    "fat_g": 13.5
                  },
                  "nutrition_basis_grams": 211.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 211.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 620.0,
                "protein_g": 75.33,
                "carbs_g": 0.0,
                "fat_g": 35.5
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 1067.9,
                  "macros": {
                    "kcal": 50.83,
                    "protein_g": 3.62,
                    "carbs_g": 11.9,
                    "fat_g": 0.42
                  },
                  "nutrition_basis_grams": 299.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 299.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 50.83,
                "protein_g": 3.62,
                "carbs_g": 11.9,
                "fat_g": 0.42
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 677.68,
          "protein_g": 79.8,
          "carbs_g": 13.17,
          "fat_g": 35.99
        },
        "delta_vs_target": {
          "kcal": -7.62,
          "protein_g": 1.0,
          "carbs_g": 0.19,
          "fat_g": 0.91
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D143",
        "name": "Lombo suíno com limão, alho e alecrim + Vagem com limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M16",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 317.2,
                  "macros": {
                    "kcal": 406.0,
                    "protein_g": 72.47,
                    "carbs_g": 0.0,
                    "fat_g": 12.99
                  },
                  "nutrition_basis_grams": 203.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 203.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 21.0,
                  "macros": {
                    "kcal": 189.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 21.0
                  },
                  "nutrition_basis_grams": 21.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 595.0,
                "protein_g": 72.47,
                "carbs_g": 0.0,
                "fat_g": 33.99
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 260.7,
                  "macros": {
                    "kcal": 53.36,
                    "protein_g": 3.71,
                    "carbs_g": 11.69,
                    "fat_g": 0.35
                  },
                  "nutrition_basis_grams": 232.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 232.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 80.24,
                "protein_g": 5.62,
                "carbs_g": 11.84,
                "fat_g": 2.45
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 682.09,
          "protein_g": 78.94,
          "carbs_g": 13.11,
          "fat_g": 36.51
        },
        "delta_vs_target": {
          "kcal": -3.21,
          "protein_g": 0.14,
          "carbs_g": 0.13,
          "fat_g": 1.43
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D144",
        "name": "Lombo suíno estilo stroganoff leve + Brócolis assado com alho e limão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M17",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 79.5,
                  "macros": {
                    "kcal": 13.3,
                    "protein_g": 0.92,
                    "carbs_g": 1.58,
                    "fat_g": 0.15
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 35.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 309.4,
                  "macros": {
                    "kcal": 396.0,
                    "protein_g": 70.69,
                    "carbs_g": 0.0,
                    "fat_g": 12.67
                  },
                  "nutrition_basis_grams": 198.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 198.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 614.95,
                "protein_g": 72.22,
                "carbs_g": 1.86,
                "fat_g": 35.27
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S01",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 223.0,
                  "macros": {
                    "kcal": 60.21,
                    "protein_g": 6.04,
                    "carbs_g": 9.9,
                    "fat_g": 1.2
                  },
                  "nutrition_basis_grams": 223.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 223.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 60.21,
                "protein_g": 6.04,
                "carbs_g": 9.9,
                "fat_g": 1.2
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 682.01,
          "protein_g": 79.11,
          "carbs_g": 13.03,
          "fat_g": 36.54
        },
        "delta_vs_target": {
          "kcal": -3.29,
          "protein_g": 0.31,
          "carbs_g": 0.05,
          "fat_g": 1.46
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D145",
        "name": "Lombo suíno estilo stroganoff leve + Purê de couve-flor + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M17",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 79.5,
                  "macros": {
                    "kcal": 13.3,
                    "protein_g": 0.92,
                    "carbs_g": 1.58,
                    "fat_g": 0.15
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 35.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 318.8,
                  "macros": {
                    "kcal": 408.0,
                    "protein_g": 72.83,
                    "carbs_g": 0.0,
                    "fat_g": 13.06
                  },
                  "nutrition_basis_grams": 204.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 204.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 626.95,
                "protein_g": 74.36,
                "carbs_g": 1.86,
                "fat_g": 35.66
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S03",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING019",
                  "ingredient_name": "Couve-flor crua, sem talo grosso e pronta para cozinhar",
                  "grams": 295.9,
                  "macros": {
                    "kcal": 49.3,
                    "protein_g": 3.71,
                    "carbs_g": 9.89,
                    "fat_g": 0.58
                  },
                  "nutrition_basis_grams": 290.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.98,
                    "expected_nutrition_basis_grams": 290.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh trimmed cauliflower; 1 lb AP = 0.62 lb ready-to-cook raw and 0.61 lb cooked, giving RTC→cooked ≈ 0.61/0.62 = 0.984 (rounded to 0.98).",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 49.3,
                "protein_g": 3.71,
                "carbs_g": 9.89,
                "fat_g": 0.58
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 683.1,
          "protein_g": 78.92,
          "carbs_g": 13.02,
          "fat_g": 36.31
        },
        "delta_vs_target": {
          "kcal": -2.2,
          "protein_g": 0.12,
          "carbs_g": 0.04,
          "fat_g": 1.23
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D146",
        "name": "Lombo suíno estilo stroganoff leve + Vagem com alho e amêndoas tostadas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M17",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 79.5,
                  "macros": {
                    "kcal": 13.3,
                    "protein_g": 0.92,
                    "carbs_g": 1.58,
                    "fat_g": 0.15
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 35.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 320.3,
                  "macros": {
                    "kcal": 410.0,
                    "protein_g": 73.19,
                    "carbs_g": 0.0,
                    "fat_g": 13.12
                  },
                  "nutrition_basis_grams": 205.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 205.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 19.0,
                  "macros": {
                    "kcal": 171.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 19.0
                  },
                  "nutrition_basis_grams": 19.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 601.95,
                "protein_g": 74.72,
                "carbs_g": 1.86,
                "fat_g": 32.72
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S05",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING027",
                  "ingredient_name": "Amêndoa natural crua, sem casca",
                  "grams": 6.2,
                  "macros": {
                    "kcal": 34.86,
                    "protein_g": 1.12,
                    "carbs_g": 1.77,
                    "fat_g": 2.84
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.97,
                    "expected_nutrition_basis_grams": 6.0,
                    "source_id": "SRC-YIELD-USDA-ALMOND",
                    "quality": "low_estimate",
                    "basis": "Planning approximation derived from USDA maximum-moisture specifications: natural (pasteurized) almonds <6.5% moisture and roasted almonds <3.5%; dry-solids balance gives ≈0.969. This is not a measured batch yield.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 182.0,
                  "macros": {
                    "kcal": 37.26,
                    "protein_g": 2.59,
                    "carbs_g": 8.16,
                    "fat_g": 0.24
                  },
                  "nutrition_basis_grams": 162.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 162.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 72.12,
                "protein_g": 3.71,
                "carbs_g": 9.93,
                "fat_g": 3.08
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 680.92,
          "protein_g": 79.28,
          "carbs_g": 13.06,
          "fat_g": 35.87
        },
        "delta_vs_target": {
          "kcal": -4.38,
          "protein_g": 0.48,
          "carbs_g": 0.08,
          "fat_g": 0.79
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D147",
        "name": "Lombo suíno estilo stroganoff leve + Abóbora moranga assada com tomilho e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M17",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 79.5,
                  "macros": {
                    "kcal": 13.3,
                    "protein_g": 0.92,
                    "carbs_g": 1.58,
                    "fat_g": 0.15
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 35.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 315.6,
                  "macros": {
                    "kcal": 404.0,
                    "protein_g": 72.11,
                    "carbs_g": 0.0,
                    "fat_g": 12.93
                  },
                  "nutrition_basis_grams": 202.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 202.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 180.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 20.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 604.95,
                "protein_g": 73.64,
                "carbs_g": 1.86,
                "fat_g": 33.53
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S07",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 878.6,
                  "macros": {
                    "kcal": 41.82,
                    "protein_g": 2.98,
                    "carbs_g": 9.79,
                    "fat_g": 0.34
                  },
                  "nutrition_basis_grams": 246.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 246.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 68.7,
                "protein_g": 4.89,
                "carbs_g": 9.94,
                "fat_g": 2.44
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 680.5,
          "protein_g": 79.38,
          "carbs_g": 13.07,
          "fat_g": 36.04
        },
        "delta_vs_target": {
          "kcal": -4.8,
          "protein_g": 0.58,
          "carbs_g": 0.09,
          "fat_g": 0.96
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D148",
        "name": "Lombo suíno estilo stroganoff leve + Purê de abóbora moranga + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M17",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 79.5,
                  "macros": {
                    "kcal": 13.3,
                    "protein_g": 0.92,
                    "carbs_g": 1.58,
                    "fat_g": 0.15
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 35.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 321.9,
                  "macros": {
                    "kcal": 412.0,
                    "protein_g": 73.54,
                    "carbs_g": 0.0,
                    "fat_g": 13.18
                  },
                  "nutrition_basis_grams": 206.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 206.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 630.95,
                "protein_g": 75.07,
                "carbs_g": 1.86,
                "fat_g": 35.78
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S10",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING017",
                  "ingredient_name": "Abóbora moranga crua, sem sementes, descascada e em cubos, pronta para cozinhar",
                  "grams": 896.4,
                  "macros": {
                    "kcal": 42.67,
                    "protein_g": 3.04,
                    "carbs_g": 9.99,
                    "fat_g": 0.35
                  },
                  "nutrition_basis_grams": 251.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.28,
                    "expected_nutrition_basis_grams": 251.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: 1 lb peeled, diced raw pumpkin (without seeds) = 0.28 lb cooked pumpkin.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 42.67,
                "protein_g": 3.04,
                "carbs_g": 9.99,
                "fat_g": 0.35
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 680.47,
          "protein_g": 78.96,
          "carbs_g": 13.12,
          "fat_g": 36.2
        },
        "delta_vs_target": {
          "kcal": -4.83,
          "protein_g": 0.16,
          "carbs_g": 0.14,
          "fat_g": 1.12
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D149",
        "name": "Lombo suíno estilo stroganoff leve + Vagem com limão e parmesão + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M17",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 79.5,
                  "macros": {
                    "kcal": 13.3,
                    "protein_g": 0.92,
                    "carbs_g": 1.58,
                    "fat_g": 0.15
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 35.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 314.1,
                  "macros": {
                    "kcal": 402.0,
                    "protein_g": 71.76,
                    "carbs_g": 0.0,
                    "fat_g": 12.86
                  },
                  "nutrition_basis_grams": 201.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 201.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 20.0,
                  "macros": {
                    "kcal": 180.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 20.0
                  },
                  "nutrition_basis_grams": 20.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 602.95,
                "protein_g": 73.29,
                "carbs_g": 1.86,
                "fat_g": 33.46
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S11",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING005",
                  "ingredient_name": "Queijo tipo parmesão",
                  "grams": 6.0,
                  "macros": {
                    "kcal": 26.88,
                    "protein_g": 1.91,
                    "carbs_g": 0.15,
                    "fat_g": 2.1
                  },
                  "nutrition_basis_grams": 6.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING022",
                  "ingredient_name": "Vagem crua, aparada e cortada, pronta para cozinhar",
                  "grams": 219.1,
                  "macros": {
                    "kcal": 44.85,
                    "protein_g": 3.12,
                    "carbs_g": 9.83,
                    "fat_g": 0.29
                  },
                  "nutrition_basis_grams": 195.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.89,
                    "expected_nutrition_basis_grams": 195.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh green beans, trimmed/cut ready-to-use; 1 lb raw = 0.89 lb cooked, drained cut beans.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 71.73,
                "protein_g": 5.03,
                "carbs_g": 9.98,
                "fat_g": 2.39
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 681.53,
          "protein_g": 79.17,
          "carbs_g": 13.11,
          "fat_g": 35.92
        },
        "delta_vs_target": {
          "kcal": -3.77,
          "protein_g": 0.37,
          "carbs_g": 0.13,
          "fat_g": 0.84
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      },
      {
        "id": "D150",
        "name": "Lombo suíno estilo stroganoff leve + Brócolis com ervas + folhas",
        "recipe_uses": [
          {
            "recipe_id": "NEW-MAIN-M17",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING025",
                  "ingredient_name": "Cogumelo Paris cru, limpo e fatiado, pronto para cozinhar",
                  "grams": 79.5,
                  "macros": {
                    "kcal": 13.3,
                    "protein_g": 0.92,
                    "carbs_g": 1.58,
                    "fat_g": 0.15
                  },
                  "nutrition_basis_grams": 35.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.44,
                    "expected_nutrition_basis_grams": 35.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "medium",
                    "basis": "Derived from USDA FBG fresh mushrooms: 1 lb whole AP = 0.98 lb ready-to-cook and 0.43 lb cooked sliced; RTC→cooked ≈ 0.43/0.98 = 0.44.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING011",
                  "ingredient_name": "Iogurte natural integral (preferir zero lactose)",
                  "grams": 15.0,
                  "macros": {
                    "kcal": 7.65,
                    "protein_g": 0.61,
                    "carbs_g": 0.28,
                    "fat_g": 0.45
                  },
                  "nutrition_basis_grams": 15.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                },
                {
                  "ingredient_id": "ING009",
                  "ingredient_name": "Lombo suíno cru, sem osso e com gordura aparente removida, pronto para cozinhar",
                  "grams": 309.4,
                  "macros": {
                    "kcal": 396.0,
                    "protein_g": 70.69,
                    "carbs_g": 0.0,
                    "fat_g": 12.67
                  },
                  "nutrition_basis_grams": 198.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 0.64,
                    "expected_nutrition_basis_grams": 198.0,
                    "source_id": "SRC-YIELD-USDA-MEAT",
                    "quality": "high",
                    "basis": "USDA FBG: pork loin roast, boneless, practically-free-of-fat; 1 lb raw AP = 0.64 lb cooked lean meat.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                },
                {
                  "ingredient_id": "ING028",
                  "ingredient_name": "Azeite de oliva",
                  "grams": 22.0,
                  "macros": {
                    "kcal": 198.0,
                    "protein_g": 0.0,
                    "carbs_g": 0.0,
                    "fat_g": 22.0
                  },
                  "nutrition_basis_grams": 22.0,
                  "measurement_state": "as_purchased_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 614.95,
                "protein_g": 72.22,
                "carbs_g": 1.86,
                "fat_g": 35.27
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-S02",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING018",
                  "ingredient_name": "Brócolis cru, aparado e pronto para cozinhar",
                  "grams": 223.0,
                  "macros": {
                    "kcal": 60.21,
                    "protein_g": 6.04,
                    "carbs_g": 9.9,
                    "fat_g": 1.2
                  },
                  "nutrition_basis_grams": 223.0,
                  "measurement_state": "raw_ready_to_cook",
                  "yield_conversion": {
                    "factor_raw_to_nutrition_basis": 1.0,
                    "expected_nutrition_basis_grams": 223.0,
                    "source_id": "SRC-YIELD-USDA-VEG",
                    "quality": "high",
                    "basis": "USDA FBG: fresh broccoli spears, trimmed/ready-to-use; 1 lb ready-to-cook corresponds to 1.00 lb cooked, drained spears.",
                    "formula": "raw_grams × factor ≈ expected_nutrition_basis_grams",
                    "planning_note": "Fator médio de planejamento. O rendimento real varia com corte, teor de gordura/água, tempo, temperatura e equipamento."
                  }
                }
              ],
              "total": {
                "kcal": 60.21,
                "protein_g": 6.04,
                "carbs_g": 9.9,
                "fat_g": 1.2
              }
            }
          },
          {
            "recipe_id": "NEW-SIDE-SALAD",
            "portion": {
              "ingredients": [
                {
                  "ingredient_id": "ING030",
                  "ingredient_name": "Mix de alface lisa, alface roxa e rúcula (1/3 cada)",
                  "grams": 50.0,
                  "macros": {
                    "kcal": 6.85,
                    "protein_g": 0.85,
                    "carbs_g": 1.27,
                    "fat_g": 0.07
                  },
                  "nutrition_basis_grams": 50.0,
                  "measurement_state": "raw_ready_to_use",
                  "yield_conversion": null
                }
              ],
              "total": {
                "kcal": 6.85,
                "protein_g": 0.85,
                "carbs_g": 1.27,
                "fat_g": 0.07
              }
            }
          }
        ],
        "total": {
          "kcal": 682.01,
          "protein_g": 79.11,
          "carbs_g": 13.03,
          "fat_g": 36.54
        },
        "delta_vs_target": {
          "kcal": -3.29,
          "protein_g": 0.31,
          "carbs_g": 0.05,
          "fat_g": 1.46
        },
        "origin": "generated_v3",
        "pairing_basis": "curated_compatibility_matrix"
      }
    ]
  },
  "daily_plans": [
    {
      "id": "DAY001",
      "breakfast_option_id": "B01",
      "lunch_option_id": "L02",
      "snack_type": "sweet",
      "snack_option_id": "SD01",
      "dinner_option_id": "D02",
      "total": {
        "kcal": 1942.0,
        "protein_g": 225.5,
        "carbs_g": 31.7,
        "fat_g": 99.4
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 10.7,
        "protein_g": -0.12,
        "carbs_g": 0.49,
        "fat_g": 0.02
      }
    },
    {
      "id": "DAY002",
      "breakfast_option_id": "B02",
      "lunch_option_id": "L03",
      "snack_type": "savory",
      "snack_option_id": "SS01",
      "dinner_option_id": "D04",
      "total": {
        "kcal": 2158.0,
        "protein_g": 253.4,
        "carbs_g": 24.6,
        "fat_g": 113.0
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 5.9,
        "protein_g": -0.18,
        "carbs_g": 0.36,
        "fat_g": -0.07
      }
    },
    {
      "id": "DAY003",
      "breakfast_option_id": "B03",
      "lunch_option_id": "L04",
      "snack_type": "sweet",
      "snack_option_id": "SD02",
      "dinner_option_id": "D06",
      "total": {
        "kcal": 1935.0,
        "protein_g": 225.5,
        "carbs_g": 31.6,
        "fat_g": 99.2
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 3.7,
        "protein_g": -0.12,
        "carbs_g": 0.39,
        "fat_g": -0.18
      }
    },
    {
      "id": "DAY004",
      "breakfast_option_id": "B04",
      "lunch_option_id": "L05",
      "snack_type": "savory",
      "snack_option_id": "SS02",
      "dinner_option_id": "D07",
      "total": {
        "kcal": 2152.0,
        "protein_g": 253.6,
        "carbs_g": 24.8,
        "fat_g": 112.6
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -0.1,
        "protein_g": 0.02,
        "carbs_g": 0.56,
        "fat_g": -0.47
      }
    },
    {
      "id": "DAY005",
      "breakfast_option_id": "B05",
      "lunch_option_id": "L07",
      "snack_type": "sweet",
      "snack_option_id": "SD03",
      "dinner_option_id": "D09",
      "total": {
        "kcal": 1932.0,
        "protein_g": 225.7,
        "carbs_g": 32.5,
        "fat_g": 98.9
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 0.7,
        "protein_g": 0.08,
        "carbs_g": 1.29,
        "fat_g": -0.48
      }
    },
    {
      "id": "DAY006",
      "breakfast_option_id": "B06",
      "lunch_option_id": "L08",
      "snack_type": "savory",
      "snack_option_id": "SS03",
      "dinner_option_id": "D11",
      "total": {
        "kcal": 2149.0,
        "protein_g": 253.2,
        "carbs_g": 25.6,
        "fat_g": 112.2
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -3.1,
        "protein_g": -0.38,
        "carbs_g": 1.36,
        "fat_g": -0.87
      }
    },
    {
      "id": "DAY007",
      "breakfast_option_id": "B07",
      "lunch_option_id": "L10",
      "snack_type": "sweet",
      "snack_option_id": "SD04",
      "dinner_option_id": "D12",
      "total": {
        "kcal": 1930.0,
        "protein_g": 225.2,
        "carbs_g": 32.6,
        "fat_g": 98.7
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -1.3,
        "protein_g": -0.42,
        "carbs_g": 1.39,
        "fat_g": -0.68
      }
    },
    {
      "id": "DAY008",
      "breakfast_option_id": "B08",
      "lunch_option_id": "L13",
      "snack_type": "savory",
      "snack_option_id": "SS04",
      "dinner_option_id": "D13",
      "total": {
        "kcal": 2142.0,
        "protein_g": 254.8,
        "carbs_g": 26.6,
        "fat_g": 114.4
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -10.1,
        "protein_g": 1.22,
        "carbs_g": 2.36,
        "fat_g": 1.33
      }
    },
    {
      "id": "DAY009",
      "breakfast_option_id": "B09",
      "lunch_option_id": "L15",
      "snack_type": "sweet",
      "snack_option_id": "SD05",
      "dinner_option_id": "D14",
      "total": {
        "kcal": 1925.0,
        "protein_g": 226.3,
        "carbs_g": 33.5,
        "fat_g": 100.9
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -6.3,
        "protein_g": 0.68,
        "carbs_g": 2.29,
        "fat_g": 1.52
      }
    },
    {
      "id": "DAY010",
      "breakfast_option_id": "B10",
      "lunch_option_id": "L17",
      "snack_type": "savory",
      "snack_option_id": "SS05",
      "dinner_option_id": "D16",
      "total": {
        "kcal": 2145.0,
        "protein_g": 254.9,
        "carbs_g": 27.1,
        "fat_g": 115.5
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -7.1,
        "protein_g": 1.32,
        "carbs_g": 2.86,
        "fat_g": 2.43
      }
    },
    {
      "id": "DAY011",
      "breakfast_option_id": "B11",
      "lunch_option_id": "L18",
      "snack_type": "sweet",
      "snack_option_id": "SD06",
      "dinner_option_id": "D18",
      "total": {
        "kcal": 1926.0,
        "protein_g": 226.7,
        "carbs_g": 33.4,
        "fat_g": 100.8
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -5.3,
        "protein_g": 1.08,
        "carbs_g": 2.19,
        "fat_g": 1.42
      }
    },
    {
      "id": "DAY012",
      "breakfast_option_id": "B12",
      "lunch_option_id": "L20",
      "snack_type": "savory",
      "snack_option_id": "SS06",
      "dinner_option_id": "D19",
      "total": {
        "kcal": 2146.0,
        "protein_g": 255.0,
        "carbs_g": 26.9,
        "fat_g": 115.2
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -6.1,
        "protein_g": 1.42,
        "carbs_g": 2.66,
        "fat_g": 2.13
      }
    },
    {
      "id": "DAY013",
      "breakfast_option_id": "B13",
      "lunch_option_id": "L21",
      "snack_type": "sweet",
      "snack_option_id": "SD07",
      "dinner_option_id": "D21",
      "total": {
        "kcal": 1920.0,
        "protein_g": 226.8,
        "carbs_g": 33.1,
        "fat_g": 100.6
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -11.3,
        "protein_g": 1.18,
        "carbs_g": 1.89,
        "fat_g": 1.22
      }
    },
    {
      "id": "DAY014",
      "breakfast_option_id": "B14",
      "lunch_option_id": "L22",
      "snack_type": "savory",
      "snack_option_id": "SS07",
      "dinner_option_id": "D23",
      "total": {
        "kcal": 2151.0,
        "protein_g": 253.5,
        "carbs_g": 25.5,
        "fat_g": 113.0
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -1.1,
        "protein_g": -0.08,
        "carbs_g": 1.26,
        "fat_g": -0.07
      }
    },
    {
      "id": "DAY015",
      "breakfast_option_id": "B15",
      "lunch_option_id": "L23",
      "snack_type": "sweet",
      "snack_option_id": "SD08",
      "dinner_option_id": "D24",
      "total": {
        "kcal": 1930.0,
        "protein_g": 225.1,
        "carbs_g": 32.1,
        "fat_g": 97.8
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -1.3,
        "protein_g": -0.52,
        "carbs_g": 0.89,
        "fat_g": -1.58
      }
    },
    {
      "id": "DAY016",
      "breakfast_option_id": "B16",
      "lunch_option_id": "L25",
      "snack_type": "savory",
      "snack_option_id": "SS08",
      "dinner_option_id": "D25",
      "total": {
        "kcal": 2149.0,
        "protein_g": 253.5,
        "carbs_g": 25.3,
        "fat_g": 111.9
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -3.1,
        "protein_g": -0.08,
        "carbs_g": 1.06,
        "fat_g": -1.17
      }
    },
    {
      "id": "DAY017",
      "breakfast_option_id": "B17",
      "lunch_option_id": "L26",
      "snack_type": "sweet",
      "snack_option_id": "SD09",
      "dinner_option_id": "D26",
      "total": {
        "kcal": 1934.0,
        "protein_g": 224.5,
        "carbs_g": 33.5,
        "fat_g": 98.7
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 2.7,
        "protein_g": -1.12,
        "carbs_g": 2.29,
        "fat_g": -0.68
      }
    },
    {
      "id": "DAY018",
      "breakfast_option_id": "B18",
      "lunch_option_id": "L28",
      "snack_type": "savory",
      "snack_option_id": "SS09",
      "dinner_option_id": "D28",
      "total": {
        "kcal": 2157.0,
        "protein_g": 253.5,
        "carbs_g": 26.2,
        "fat_g": 112.4
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 4.9,
        "protein_g": -0.08,
        "carbs_g": 1.96,
        "fat_g": -0.67
      }
    },
    {
      "id": "DAY019",
      "breakfast_option_id": "B19",
      "lunch_option_id": "L30",
      "snack_type": "sweet",
      "snack_option_id": "SD10",
      "dinner_option_id": "D30",
      "total": {
        "kcal": 1929.0,
        "protein_g": 225.6,
        "carbs_g": 32.9,
        "fat_g": 98.1
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -2.3,
        "protein_g": -0.02,
        "carbs_g": 1.69,
        "fat_g": -1.28
      }
    },
    {
      "id": "DAY020",
      "breakfast_option_id": "B20",
      "lunch_option_id": "L33",
      "snack_type": "savory",
      "snack_option_id": "SS10",
      "dinner_option_id": "D32",
      "total": {
        "kcal": 2149.0,
        "protein_g": 254.7,
        "carbs_g": 26.8,
        "fat_g": 115.3
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -3.1,
        "protein_g": 1.12,
        "carbs_g": 2.56,
        "fat_g": 2.23
      }
    },
    {
      "id": "DAY021",
      "breakfast_option_id": "B21",
      "lunch_option_id": "L35",
      "snack_type": "sweet",
      "snack_option_id": "SD11",
      "dinner_option_id": "D33",
      "total": {
        "kcal": 1925.0,
        "protein_g": 226.8,
        "carbs_g": 33.4,
        "fat_g": 101.2
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -6.3,
        "protein_g": 1.18,
        "carbs_g": 2.19,
        "fat_g": 1.82
      }
    },
    {
      "id": "DAY022",
      "breakfast_option_id": "B22",
      "lunch_option_id": "L36",
      "snack_type": "savory",
      "snack_option_id": "SS11",
      "dinner_option_id": "D35",
      "total": {
        "kcal": 2152.0,
        "protein_g": 255.0,
        "carbs_g": 27.0,
        "fat_g": 116.2
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -0.1,
        "protein_g": 1.42,
        "carbs_g": 2.76,
        "fat_g": 3.13
      }
    },
    {
      "id": "DAY023",
      "breakfast_option_id": "B23",
      "lunch_option_id": "L37",
      "snack_type": "sweet",
      "snack_option_id": "SD12",
      "dinner_option_id": "D37",
      "total": {
        "kcal": 1927.0,
        "protein_g": 227.1,
        "carbs_g": 33.4,
        "fat_g": 101.8
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -4.3,
        "protein_g": 1.48,
        "carbs_g": 2.19,
        "fat_g": 2.42
      }
    },
    {
      "id": "DAY024",
      "breakfast_option_id": "B24",
      "lunch_option_id": "L38",
      "snack_type": "savory",
      "snack_option_id": "SS12",
      "dinner_option_id": "D38",
      "total": {
        "kcal": 2151.0,
        "protein_g": 254.5,
        "carbs_g": 27.6,
        "fat_g": 115.4
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -1.1,
        "protein_g": 0.92,
        "carbs_g": 3.36,
        "fat_g": 2.33
      }
    },
    {
      "id": "DAY025",
      "breakfast_option_id": "B25",
      "lunch_option_id": "L39",
      "snack_type": "sweet",
      "snack_option_id": "SD13",
      "dinner_option_id": "D40",
      "total": {
        "kcal": 1915.0,
        "protein_g": 226.4,
        "carbs_g": 33.2,
        "fat_g": 99.7
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -16.3,
        "protein_g": 0.78,
        "carbs_g": 1.99,
        "fat_g": 0.32
      }
    },
    {
      "id": "DAY026",
      "breakfast_option_id": "B26",
      "lunch_option_id": "L41",
      "snack_type": "savory",
      "snack_option_id": "SS13",
      "dinner_option_id": "D42",
      "total": {
        "kcal": 2139.0,
        "protein_g": 254.7,
        "carbs_g": 26.5,
        "fat_g": 114.7
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -13.1,
        "protein_g": 1.12,
        "carbs_g": 2.26,
        "fat_g": 1.63
      }
    },
    {
      "id": "DAY027",
      "breakfast_option_id": "B27",
      "lunch_option_id": "L42",
      "snack_type": "sweet",
      "snack_option_id": "SD14",
      "dinner_option_id": "D44",
      "total": {
        "kcal": 1920.0,
        "protein_g": 226.5,
        "carbs_g": 33.2,
        "fat_g": 100.5
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -11.3,
        "protein_g": 0.88,
        "carbs_g": 1.99,
        "fat_g": 1.12
      }
    },
    {
      "id": "DAY028",
      "breakfast_option_id": "B28",
      "lunch_option_id": "L43",
      "snack_type": "savory",
      "snack_option_id": "SS14",
      "dinner_option_id": "D45",
      "total": {
        "kcal": 2156.0,
        "protein_g": 254.9,
        "carbs_g": 26.7,
        "fat_g": 116.3
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 3.9,
        "protein_g": 1.32,
        "carbs_g": 2.46,
        "fat_g": 3.23
      }
    },
    {
      "id": "DAY029",
      "breakfast_option_id": "B29",
      "lunch_option_id": "L46",
      "snack_type": "sweet",
      "snack_option_id": "SD15",
      "dinner_option_id": "D46",
      "total": {
        "kcal": 1930.0,
        "protein_g": 226.8,
        "carbs_g": 32.4,
        "fat_g": 101.7
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -1.3,
        "protein_g": 1.18,
        "carbs_g": 1.19,
        "fat_g": 2.32
      }
    },
    {
      "id": "DAY030",
      "breakfast_option_id": "B30",
      "lunch_option_id": "L48",
      "snack_type": "savory",
      "snack_option_id": "SS15",
      "dinner_option_id": "D47",
      "total": {
        "kcal": 2161.0,
        "protein_g": 254.9,
        "carbs_g": 25.7,
        "fat_g": 117.2
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 8.9,
        "protein_g": 1.32,
        "carbs_g": 1.46,
        "fat_g": 4.13
      }
    },
    {
      "id": "DAY031",
      "breakfast_option_id": "B31",
      "lunch_option_id": "L49",
      "snack_type": "sweet",
      "snack_option_id": "SD16",
      "dinner_option_id": "D50",
      "total": {
        "kcal": 1924.0,
        "protein_g": 226.5,
        "carbs_g": 32.5,
        "fat_g": 101.2
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -7.3,
        "protein_g": 0.88,
        "carbs_g": 1.29,
        "fat_g": 1.82
      }
    },
    {
      "id": "DAY032",
      "breakfast_option_id": "B32",
      "lunch_option_id": "L032",
      "snack_type": "savory",
      "snack_option_id": "SS16",
      "dinner_option_id": "D032",
      "total": {
        "kcal": 2163.65,
        "protein_g": 253.21,
        "carbs_g": 24.81,
        "fat_g": 114.05
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 11.55,
        "protein_g": -0.37,
        "carbs_g": 0.57,
        "fat_g": 0.98
      }
    },
    {
      "id": "DAY033",
      "breakfast_option_id": "B33",
      "lunch_option_id": "L033",
      "snack_type": "sweet",
      "snack_option_id": "SD17",
      "dinner_option_id": "D033",
      "total": {
        "kcal": 1936.43,
        "protein_g": 223.09,
        "carbs_g": 32.49,
        "fat_g": 99.43
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 5.13,
        "protein_g": -2.53,
        "carbs_g": 1.28,
        "fat_g": 0.05
      }
    },
    {
      "id": "DAY034",
      "breakfast_option_id": "B34",
      "lunch_option_id": "L034",
      "snack_type": "savory",
      "snack_option_id": "SS17",
      "dinner_option_id": "D034",
      "total": {
        "kcal": 2150.54,
        "protein_g": 253.97,
        "carbs_g": 25.37,
        "fat_g": 112.93
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -1.56,
        "protein_g": 0.39,
        "carbs_g": 1.13,
        "fat_g": -0.14
      }
    },
    {
      "id": "DAY035",
      "breakfast_option_id": "B35",
      "lunch_option_id": "L035",
      "snack_type": "sweet",
      "snack_option_id": "SD18",
      "dinner_option_id": "D035",
      "total": {
        "kcal": 1930.65,
        "protein_g": 224.81,
        "carbs_g": 31.91,
        "fat_g": 98.15
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -0.65,
        "protein_g": -0.81,
        "carbs_g": 0.7,
        "fat_g": -1.23
      }
    },
    {
      "id": "DAY036",
      "breakfast_option_id": "B36",
      "lunch_option_id": "L036",
      "snack_type": "savory",
      "snack_option_id": "SS18",
      "dinner_option_id": "D036",
      "total": {
        "kcal": 2154.2,
        "protein_g": 253.24,
        "carbs_g": 25.28,
        "fat_g": 113.24
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 2.1,
        "protein_g": -0.34,
        "carbs_g": 1.04,
        "fat_g": 0.17
      }
    },
    {
      "id": "DAY037",
      "breakfast_option_id": "B37",
      "lunch_option_id": "L037",
      "snack_type": "sweet",
      "snack_option_id": "SD19",
      "dinner_option_id": "D037",
      "total": {
        "kcal": 1940.59,
        "protein_g": 223.73,
        "carbs_g": 32.56,
        "fat_g": 99.37
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 9.29,
        "protein_g": -1.89,
        "carbs_g": 1.35,
        "fat_g": -0.01
      }
    },
    {
      "id": "DAY038",
      "breakfast_option_id": "B38",
      "lunch_option_id": "L038",
      "snack_type": "savory",
      "snack_option_id": "SS19",
      "dinner_option_id": "D038",
      "total": {
        "kcal": 2146.54,
        "protein_g": 254.17,
        "carbs_g": 25.77,
        "fat_g": 112.33
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -5.56,
        "protein_g": 0.59,
        "carbs_g": 1.53,
        "fat_g": -0.74
      }
    },
    {
      "id": "DAY039",
      "breakfast_option_id": "B39",
      "lunch_option_id": "L039",
      "snack_type": "sweet",
      "snack_option_id": "SD20",
      "dinner_option_id": "D039",
      "total": {
        "kcal": 1912.25,
        "protein_g": 226.9,
        "carbs_g": 32.86,
        "fat_g": 101.32
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -19.05,
        "protein_g": 1.28,
        "carbs_g": 1.65,
        "fat_g": 1.94
      }
    },
    {
      "id": "DAY040",
      "breakfast_option_id": "B40",
      "lunch_option_id": "L040",
      "snack_type": "savory",
      "snack_option_id": "SS20",
      "dinner_option_id": "D040",
      "total": {
        "kcal": 2136.54,
        "protein_g": 255.04,
        "carbs_g": 26.1,
        "fat_g": 115.24
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -15.56,
        "protein_g": 1.46,
        "carbs_g": 1.86,
        "fat_g": 2.17
      }
    },
    {
      "id": "DAY041",
      "breakfast_option_id": "B41",
      "lunch_option_id": "L041",
      "snack_type": "sweet",
      "snack_option_id": "SD21",
      "dinner_option_id": "D041",
      "total": {
        "kcal": 1916.5,
        "protein_g": 226.45,
        "carbs_g": 32.81,
        "fat_g": 100.95
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -14.8,
        "protein_g": 0.83,
        "carbs_g": 1.6,
        "fat_g": 1.57
      }
    },
    {
      "id": "DAY042",
      "breakfast_option_id": "B42",
      "lunch_option_id": "L042",
      "snack_type": "savory",
      "snack_option_id": "SS21",
      "dinner_option_id": "D042",
      "total": {
        "kcal": 2135.05,
        "protein_g": 254.75,
        "carbs_g": 26.14,
        "fat_g": 115.63
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -17.05,
        "protein_g": 1.17,
        "carbs_g": 1.9,
        "fat_g": 2.56
      }
    },
    {
      "id": "DAY043",
      "breakfast_option_id": "B43",
      "lunch_option_id": "L043",
      "snack_type": "sweet",
      "snack_option_id": "SD22",
      "dinner_option_id": "D043",
      "total": {
        "kcal": 1913.63,
        "protein_g": 227.13,
        "carbs_g": 32.68,
        "fat_g": 100.83
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -17.67,
        "protein_g": 1.51,
        "carbs_g": 1.47,
        "fat_g": 1.45
      }
    },
    {
      "id": "DAY044",
      "breakfast_option_id": "B44",
      "lunch_option_id": "L044",
      "snack_type": "savory",
      "snack_option_id": "SS22",
      "dinner_option_id": "D044",
      "total": {
        "kcal": 2131.94,
        "protein_g": 255.47,
        "carbs_g": 26.04,
        "fat_g": 114.5
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -20.16,
        "protein_g": 1.89,
        "carbs_g": 1.8,
        "fat_g": 1.43
      }
    },
    {
      "id": "DAY045",
      "breakfast_option_id": "B45",
      "lunch_option_id": "L045",
      "snack_type": "sweet",
      "snack_option_id": "SD23",
      "dinner_option_id": "D045",
      "total": {
        "kcal": 1920.61,
        "protein_g": 226.54,
        "carbs_g": 33.09,
        "fat_g": 100.44
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -10.69,
        "protein_g": 0.92,
        "carbs_g": 1.88,
        "fat_g": 1.06
      }
    },
    {
      "id": "DAY046",
      "breakfast_option_id": "B46",
      "lunch_option_id": "L046",
      "snack_type": "savory",
      "snack_option_id": "SS23",
      "dinner_option_id": "D046",
      "total": {
        "kcal": 2136.32,
        "protein_g": 255.08,
        "carbs_g": 26.49,
        "fat_g": 114.98
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -15.78,
        "protein_g": 1.5,
        "carbs_g": 2.25,
        "fat_g": 1.91
      }
    },
    {
      "id": "DAY047",
      "breakfast_option_id": "B47",
      "lunch_option_id": "L047",
      "snack_type": "sweet",
      "snack_option_id": "SD24",
      "dinner_option_id": "D047",
      "total": {
        "kcal": 1917.54,
        "protein_g": 226.94,
        "carbs_g": 32.2,
        "fat_g": 101.04
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -13.76,
        "protein_g": 1.32,
        "carbs_g": 0.99,
        "fat_g": 1.66
      }
    },
    {
      "id": "DAY048",
      "breakfast_option_id": "B48",
      "lunch_option_id": "L048",
      "snack_type": "savory",
      "snack_option_id": "SS24",
      "dinner_option_id": "D048",
      "total": {
        "kcal": 2133.25,
        "protein_g": 255.2,
        "carbs_g": 26.66,
        "fat_g": 115.72
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -18.85,
        "protein_g": 1.62,
        "carbs_g": 2.42,
        "fat_g": 2.65
      }
    },
    {
      "id": "DAY049",
      "breakfast_option_id": "B49",
      "lunch_option_id": "L049",
      "snack_type": "sweet",
      "snack_option_id": "SD25",
      "dinner_option_id": "D049",
      "total": {
        "kcal": 1922.54,
        "protein_g": 226.94,
        "carbs_g": 30.9,
        "fat_g": 102.04
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -8.76,
        "protein_g": 1.32,
        "carbs_g": -0.31,
        "fat_g": 2.66
      }
    },
    {
      "id": "DAY050",
      "breakfast_option_id": "B50",
      "lunch_option_id": "L050",
      "snack_type": "savory",
      "snack_option_id": "SS25",
      "dinner_option_id": "D050",
      "total": {
        "kcal": 2133.5,
        "protein_g": 254.65,
        "carbs_g": 25.41,
        "fat_g": 115.55
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -18.6,
        "protein_g": 1.07,
        "carbs_g": 1.17,
        "fat_g": 2.48
      }
    },
    {
      "id": "DAY051",
      "breakfast_option_id": "B051",
      "lunch_option_id": "L051",
      "snack_type": "sweet",
      "snack_option_id": "SD026",
      "dinner_option_id": "D051",
      "total": {
        "kcal": 1937.43,
        "protein_g": 225.09,
        "carbs_g": 29.66,
        "fat_g": 100.37
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 6.13,
        "protein_g": -0.53,
        "carbs_g": -1.55,
        "fat_g": 0.99
      }
    },
    {
      "id": "DAY052",
      "breakfast_option_id": "B052",
      "lunch_option_id": "L052",
      "snack_type": "savory",
      "snack_option_id": "SS026",
      "dinner_option_id": "D052",
      "total": {
        "kcal": 2139.93,
        "protein_g": 255.28,
        "carbs_g": 24.61,
        "fat_g": 116.9
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -12.17,
        "protein_g": 1.7,
        "carbs_g": 0.37,
        "fat_g": 3.83
      }
    },
    {
      "id": "DAY053",
      "breakfast_option_id": "B053",
      "lunch_option_id": "L053",
      "snack_type": "sweet",
      "snack_option_id": "SD027",
      "dinner_option_id": "D053",
      "total": {
        "kcal": 1918.02,
        "protein_g": 226.72,
        "carbs_g": 30.28,
        "fat_g": 103.09
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -13.28,
        "protein_g": 1.1,
        "carbs_g": -0.93,
        "fat_g": 3.71
      }
    },
    {
      "id": "DAY054",
      "breakfast_option_id": "B054",
      "lunch_option_id": "L054",
      "snack_type": "savory",
      "snack_option_id": "SS027",
      "dinner_option_id": "D054",
      "total": {
        "kcal": 2140.84,
        "protein_g": 254.89,
        "carbs_g": 23.63,
        "fat_g": 117.01
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -11.26,
        "protein_g": 1.31,
        "carbs_g": -0.61,
        "fat_g": 3.94
      }
    },
    {
      "id": "DAY055",
      "breakfast_option_id": "B055",
      "lunch_option_id": "L055",
      "snack_type": "sweet",
      "snack_option_id": "SD028",
      "dinner_option_id": "D055",
      "total": {
        "kcal": 1921.09,
        "protein_g": 226.46,
        "carbs_g": 31.64,
        "fat_g": 101.83
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -10.21,
        "protein_g": 0.84,
        "carbs_g": 0.43,
        "fat_g": 2.45
      }
    },
    {
      "id": "DAY056",
      "breakfast_option_id": "B056",
      "lunch_option_id": "L056",
      "snack_type": "savory",
      "snack_option_id": "SS028",
      "dinner_option_id": "D056",
      "total": {
        "kcal": 2140.35,
        "protein_g": 254.7,
        "carbs_g": 24.67,
        "fat_g": 117.2
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -11.75,
        "protein_g": 1.12,
        "carbs_g": 0.43,
        "fat_g": 4.13
      }
    },
    {
      "id": "DAY057",
      "breakfast_option_id": "B057",
      "lunch_option_id": "L057",
      "snack_type": "sweet",
      "snack_option_id": "SD029",
      "dinner_option_id": "D057",
      "total": {
        "kcal": 1935.77,
        "protein_g": 225.16,
        "carbs_g": 28.05,
        "fat_g": 100.82
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 4.47,
        "protein_g": -0.46,
        "carbs_g": -3.16,
        "fat_g": 1.44
      }
    },
    {
      "id": "DAY058",
      "breakfast_option_id": "B058",
      "lunch_option_id": "L058",
      "snack_type": "savory",
      "snack_option_id": "SS029",
      "dinner_option_id": "D058",
      "total": {
        "kcal": 2139.24,
        "protein_g": 255.32,
        "carbs_g": 24.67,
        "fat_g": 116.17
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -12.86,
        "protein_g": 1.74,
        "carbs_g": 0.43,
        "fat_g": 3.1
      }
    },
    {
      "id": "DAY059",
      "breakfast_option_id": "B059",
      "lunch_option_id": "L059",
      "snack_type": "sweet",
      "snack_option_id": "SD030",
      "dinner_option_id": "D059",
      "total": {
        "kcal": 1922.72,
        "protein_g": 226.43,
        "carbs_g": 28.5,
        "fat_g": 102.76
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -8.58,
        "protein_g": 0.81,
        "carbs_g": -2.71,
        "fat_g": 3.38
      }
    },
    {
      "id": "DAY060",
      "breakfast_option_id": "B060",
      "lunch_option_id": "L060",
      "snack_type": "savory",
      "snack_option_id": "SS030",
      "dinner_option_id": "D060",
      "total": {
        "kcal": 2140.84,
        "protein_g": 254.89,
        "carbs_g": 23.63,
        "fat_g": 117.01
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -11.26,
        "protein_g": 1.31,
        "carbs_g": -0.61,
        "fat_g": 3.94
      }
    },
    {
      "id": "DAY061",
      "breakfast_option_id": "B061",
      "lunch_option_id": "L061",
      "snack_type": "sweet",
      "snack_option_id": "SD031",
      "dinner_option_id": "D061",
      "total": {
        "kcal": 1920.89,
        "protein_g": 226.11,
        "carbs_g": 31.09,
        "fat_g": 102.28
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -10.41,
        "protein_g": 0.49,
        "carbs_g": -0.12,
        "fat_g": 2.9
      }
    },
    {
      "id": "DAY062",
      "breakfast_option_id": "B062",
      "lunch_option_id": "L062",
      "snack_type": "savory",
      "snack_option_id": "SS031",
      "dinner_option_id": "D062",
      "total": {
        "kcal": 2158.23,
        "protein_g": 253.09,
        "carbs_g": 24.07,
        "fat_g": 113.33
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 6.13,
        "protein_g": -0.49,
        "carbs_g": -0.17,
        "fat_g": 0.26
      }
    },
    {
      "id": "DAY063",
      "breakfast_option_id": "B063",
      "lunch_option_id": "L063",
      "snack_type": "sweet",
      "snack_option_id": "SD032",
      "dinner_option_id": "D063",
      "total": {
        "kcal": 1918.02,
        "protein_g": 226.72,
        "carbs_g": 30.28,
        "fat_g": 103.09
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -13.28,
        "protein_g": 1.1,
        "carbs_g": -0.93,
        "fat_g": 3.71
      }
    },
    {
      "id": "DAY064",
      "breakfast_option_id": "B064",
      "lunch_option_id": "L064",
      "snack_type": "savory",
      "snack_option_id": "SS032",
      "dinner_option_id": "D064",
      "total": {
        "kcal": 2140.2,
        "protein_g": 255.05,
        "carbs_g": 24.61,
        "fat_g": 115.66
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -11.9,
        "protein_g": 1.47,
        "carbs_g": 0.37,
        "fat_g": 2.59
      }
    },
    {
      "id": "DAY065",
      "breakfast_option_id": "B065",
      "lunch_option_id": "L065",
      "snack_type": "sweet",
      "snack_option_id": "SD033",
      "dinner_option_id": "D065",
      "total": {
        "kcal": 1918.53,
        "protein_g": 227.28,
        "carbs_g": 31.67,
        "fat_g": 101.08
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -12.77,
        "protein_g": 1.66,
        "carbs_g": 0.46,
        "fat_g": 1.7
      }
    },
    {
      "id": "DAY066",
      "breakfast_option_id": "B066",
      "lunch_option_id": "L066",
      "snack_type": "savory",
      "snack_option_id": "SS033",
      "dinner_option_id": "D066",
      "total": {
        "kcal": 2145.18,
        "protein_g": 254.36,
        "carbs_g": 24.52,
        "fat_g": 115.27
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -6.92,
        "protein_g": 0.78,
        "carbs_g": 0.28,
        "fat_g": 2.2
      }
    },
    {
      "id": "DAY067",
      "breakfast_option_id": "B067",
      "lunch_option_id": "L067",
      "snack_type": "sweet",
      "snack_option_id": "SD034",
      "dinner_option_id": "D067",
      "total": {
        "kcal": 1934.12,
        "protein_g": 224.71,
        "carbs_g": 30.79,
        "fat_g": 100.74
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 2.82,
        "protein_g": -0.91,
        "carbs_g": -0.42,
        "fat_g": 1.36
      }
    },
    {
      "id": "DAY068",
      "breakfast_option_id": "B068",
      "lunch_option_id": "L068",
      "snack_type": "savory",
      "snack_option_id": "SS034",
      "dinner_option_id": "D068",
      "total": {
        "kcal": 2154.1,
        "protein_g": 253.29,
        "carbs_g": 24.32,
        "fat_g": 112.89
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 2.0,
        "protein_g": -0.29,
        "carbs_g": 0.08,
        "fat_g": -0.18
      }
    },
    {
      "id": "DAY069",
      "breakfast_option_id": "B069",
      "lunch_option_id": "L069",
      "snack_type": "sweet",
      "snack_option_id": "SD035",
      "dinner_option_id": "D069",
      "total": {
        "kcal": 1940.2,
        "protein_g": 223.02,
        "carbs_g": 28.17,
        "fat_g": 102.47
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 8.9,
        "protein_g": -2.6,
        "carbs_g": -3.04,
        "fat_g": 3.09
      }
    },
    {
      "id": "DAY070",
      "breakfast_option_id": "B070",
      "lunch_option_id": "L070",
      "snack_type": "savory",
      "snack_option_id": "SS035",
      "dinner_option_id": "D070",
      "total": {
        "kcal": 2165.67,
        "protein_g": 252.28,
        "carbs_g": 23.66,
        "fat_g": 110.72
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 13.57,
        "protein_g": -1.3,
        "carbs_g": -0.58,
        "fat_g": -2.35
      }
    },
    {
      "id": "DAY071",
      "breakfast_option_id": "B071",
      "lunch_option_id": "L071",
      "snack_type": "sweet",
      "snack_option_id": "SD036",
      "dinner_option_id": "D071",
      "total": {
        "kcal": 1933.3,
        "protein_g": 225.29,
        "carbs_g": 29.91,
        "fat_g": 99.93
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 2.0,
        "protein_g": -0.33,
        "carbs_g": -1.3,
        "fat_g": 0.55
      }
    },
    {
      "id": "DAY072",
      "breakfast_option_id": "B072",
      "lunch_option_id": "L072",
      "snack_type": "savory",
      "snack_option_id": "SS036",
      "dinner_option_id": "D072",
      "total": {
        "kcal": 2152.29,
        "protein_g": 253.39,
        "carbs_g": 24.33,
        "fat_g": 113.02
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 0.19,
        "protein_g": -0.19,
        "carbs_g": 0.09,
        "fat_g": -0.05
      }
    },
    {
      "id": "DAY073",
      "breakfast_option_id": "B073",
      "lunch_option_id": "L073",
      "snack_type": "sweet",
      "snack_option_id": "SD037",
      "dinner_option_id": "D073",
      "total": {
        "kcal": 1938.45,
        "protein_g": 224.74,
        "carbs_g": 29.72,
        "fat_g": 100.01
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 7.15,
        "protein_g": -0.88,
        "carbs_g": -1.49,
        "fat_g": 0.63
      }
    },
    {
      "id": "DAY074",
      "breakfast_option_id": "B074",
      "lunch_option_id": "L074",
      "snack_type": "savory",
      "snack_option_id": "SS037",
      "dinner_option_id": "D074",
      "total": {
        "kcal": 2153.18,
        "protein_g": 253.66,
        "carbs_g": 23.46,
        "fat_g": 113.04
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 1.08,
        "protein_g": 0.08,
        "carbs_g": -0.78,
        "fat_g": -0.03
      }
    },
    {
      "id": "DAY075",
      "breakfast_option_id": "B075",
      "lunch_option_id": "L075",
      "snack_type": "sweet",
      "snack_option_id": "SD038",
      "dinner_option_id": "D075",
      "total": {
        "kcal": 1942.14,
        "protein_g": 223.25,
        "carbs_g": 29.78,
        "fat_g": 102.04
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 10.84,
        "protein_g": -2.37,
        "carbs_g": -1.43,
        "fat_g": 2.66
      }
    },
    {
      "id": "DAY076",
      "breakfast_option_id": "B076",
      "lunch_option_id": "L076",
      "snack_type": "savory",
      "snack_option_id": "SS038",
      "dinner_option_id": "D076",
      "total": {
        "kcal": 2151.51,
        "protein_g": 253.01,
        "carbs_g": 24.31,
        "fat_g": 114.72
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -0.59,
        "protein_g": -0.57,
        "carbs_g": 0.07,
        "fat_g": 1.65
      }
    },
    {
      "id": "DAY077",
      "breakfast_option_id": "B077",
      "lunch_option_id": "L077",
      "snack_type": "sweet",
      "snack_option_id": "SD039",
      "dinner_option_id": "D077",
      "total": {
        "kcal": 1932.0,
        "protein_g": 225.5,
        "carbs_g": 29.91,
        "fat_g": 99.64
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 0.7,
        "protein_g": -0.12,
        "carbs_g": -1.3,
        "fat_g": 0.26
      }
    },
    {
      "id": "DAY078",
      "breakfast_option_id": "B078",
      "lunch_option_id": "L078",
      "snack_type": "savory",
      "snack_option_id": "SS039",
      "dinner_option_id": "D078",
      "total": {
        "kcal": 2148.39,
        "protein_g": 254.36,
        "carbs_g": 24.33,
        "fat_g": 113.6
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -3.71,
        "protein_g": 0.78,
        "carbs_g": 0.09,
        "fat_g": 0.53
      }
    },
    {
      "id": "DAY079",
      "breakfast_option_id": "B079",
      "lunch_option_id": "L079",
      "snack_type": "sweet",
      "snack_option_id": "SD040",
      "dinner_option_id": "D079",
      "total": {
        "kcal": 1937.23,
        "protein_g": 224.45,
        "carbs_g": 31.22,
        "fat_g": 100.11
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 5.93,
        "protein_g": -1.17,
        "carbs_g": 0.01,
        "fat_g": 0.73
      }
    },
    {
      "id": "DAY080",
      "breakfast_option_id": "B080",
      "lunch_option_id": "L080",
      "snack_type": "savory",
      "snack_option_id": "SS040",
      "dinner_option_id": "D080",
      "total": {
        "kcal": 2155.19,
        "protein_g": 253.32,
        "carbs_g": 24.15,
        "fat_g": 113.56
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 3.09,
        "protein_g": -0.26,
        "carbs_g": -0.09,
        "fat_g": 0.49
      }
    },
    {
      "id": "DAY081",
      "breakfast_option_id": "B081",
      "lunch_option_id": "L081",
      "snack_type": "sweet",
      "snack_option_id": "SD041",
      "dinner_option_id": "D081",
      "total": {
        "kcal": 1931.68,
        "protein_g": 225.46,
        "carbs_g": 28.21,
        "fat_g": 100.43
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 0.38,
        "protein_g": -0.16,
        "carbs_g": -3.0,
        "fat_g": 1.05
      }
    },
    {
      "id": "DAY082",
      "breakfast_option_id": "B082",
      "lunch_option_id": "L082",
      "snack_type": "savory",
      "snack_option_id": "SS041",
      "dinner_option_id": "D082",
      "total": {
        "kcal": 2152.55,
        "protein_g": 252.91,
        "carbs_g": 24.29,
        "fat_g": 114.75
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 0.45,
        "protein_g": -0.67,
        "carbs_g": 0.05,
        "fat_g": 1.68
      }
    },
    {
      "id": "DAY083",
      "breakfast_option_id": "B083",
      "lunch_option_id": "L083",
      "snack_type": "sweet",
      "snack_option_id": "SD042",
      "dinner_option_id": "D083",
      "total": {
        "kcal": 1931.68,
        "protein_g": 225.46,
        "carbs_g": 28.21,
        "fat_g": 100.43
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 0.38,
        "protein_g": -0.16,
        "carbs_g": -3.0,
        "fat_g": 1.05
      }
    },
    {
      "id": "DAY084",
      "breakfast_option_id": "B084",
      "lunch_option_id": "L084",
      "snack_type": "savory",
      "snack_option_id": "SS042",
      "dinner_option_id": "D084",
      "total": {
        "kcal": 2149.43,
        "protein_g": 254.26,
        "carbs_g": 24.31,
        "fat_g": 113.63
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -2.67,
        "protein_g": 0.68,
        "carbs_g": 0.07,
        "fat_g": 0.56
      }
    },
    {
      "id": "DAY085",
      "breakfast_option_id": "B085",
      "lunch_option_id": "L085",
      "snack_type": "sweet",
      "snack_option_id": "SD043",
      "dinner_option_id": "D085",
      "total": {
        "kcal": 1942.32,
        "protein_g": 223.09,
        "carbs_g": 29.74,
        "fat_g": 102.08
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 11.02,
        "protein_g": -2.53,
        "carbs_g": -1.47,
        "fat_g": 2.7
      }
    },
    {
      "id": "DAY086",
      "breakfast_option_id": "B086",
      "lunch_option_id": "L086",
      "snack_type": "savory",
      "snack_option_id": "SS043",
      "dinner_option_id": "D086",
      "total": {
        "kcal": 2155.04,
        "protein_g": 252.85,
        "carbs_g": 24.23,
        "fat_g": 114.54
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 2.94,
        "protein_g": -0.73,
        "carbs_g": -0.01,
        "fat_g": 1.47
      }
    },
    {
      "id": "DAY087",
      "breakfast_option_id": "B087",
      "lunch_option_id": "L087",
      "snack_type": "sweet",
      "snack_option_id": "SD044",
      "dinner_option_id": "D087",
      "total": {
        "kcal": 1933.16,
        "protein_g": 225.58,
        "carbs_g": 31.23,
        "fat_g": 99.09
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 1.86,
        "protein_g": -0.04,
        "carbs_g": 0.02,
        "fat_g": -0.29
      }
    },
    {
      "id": "DAY088",
      "breakfast_option_id": "B088",
      "lunch_option_id": "L088",
      "snack_type": "savory",
      "snack_option_id": "SS044",
      "dinner_option_id": "D088",
      "total": {
        "kcal": 2140.35,
        "protein_g": 254.75,
        "carbs_g": 24.47,
        "fat_g": 117.13
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -11.75,
        "protein_g": 1.17,
        "carbs_g": 0.23,
        "fat_g": 4.06
      }
    },
    {
      "id": "DAY089",
      "breakfast_option_id": "B089",
      "lunch_option_id": "L089",
      "snack_type": "sweet",
      "snack_option_id": "SD045",
      "dinner_option_id": "D089",
      "total": {
        "kcal": 1922.75,
        "protein_g": 225.88,
        "carbs_g": 30.92,
        "fat_g": 103.19
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -8.55,
        "protein_g": 0.26,
        "carbs_g": -0.29,
        "fat_g": 3.81
      }
    },
    {
      "id": "DAY090",
      "breakfast_option_id": "B090",
      "lunch_option_id": "L090",
      "snack_type": "savory",
      "snack_option_id": "SS045",
      "dinner_option_id": "D090",
      "total": {
        "kcal": 2137.04,
        "protein_g": 255.45,
        "carbs_g": 24.69,
        "fat_g": 115.43
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -15.06,
        "protein_g": 1.87,
        "carbs_g": 0.45,
        "fat_g": 2.36
      }
    },
    {
      "id": "DAY091",
      "breakfast_option_id": "B091",
      "lunch_option_id": "L091",
      "snack_type": "sweet",
      "snack_option_id": "SD046",
      "dinner_option_id": "D091",
      "total": {
        "kcal": 1917.38,
        "protein_g": 227.3,
        "carbs_g": 29.28,
        "fat_g": 102.18
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -13.92,
        "protein_g": 1.68,
        "carbs_g": -1.93,
        "fat_g": 2.8
      }
    },
    {
      "id": "DAY092",
      "breakfast_option_id": "B092",
      "lunch_option_id": "L092",
      "snack_type": "savory",
      "snack_option_id": "SS046",
      "dinner_option_id": "D092",
      "total": {
        "kcal": 2136.8,
        "protein_g": 255.66,
        "carbs_g": 25.32,
        "fat_g": 115.39
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -15.3,
        "protein_g": 2.08,
        "carbs_g": 1.08,
        "fat_g": 2.32
      }
    },
    {
      "id": "DAY093",
      "breakfast_option_id": "B093",
      "lunch_option_id": "L093",
      "snack_type": "sweet",
      "snack_option_id": "SD047",
      "dinner_option_id": "D093",
      "total": {
        "kcal": 1919.96,
        "protein_g": 226.92,
        "carbs_g": 29.26,
        "fat_g": 102.02
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -11.34,
        "protein_g": 1.3,
        "carbs_g": -1.95,
        "fat_g": 2.64
      }
    },
    {
      "id": "DAY094",
      "breakfast_option_id": "B094",
      "lunch_option_id": "L094",
      "snack_type": "savory",
      "snack_option_id": "SS047",
      "dinner_option_id": "D094",
      "total": {
        "kcal": 2146.27,
        "protein_g": 254.62,
        "carbs_g": 25.1,
        "fat_g": 115.68
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -5.83,
        "protein_g": 1.04,
        "carbs_g": 0.86,
        "fat_g": 2.61
      }
    },
    {
      "id": "DAY095",
      "breakfast_option_id": "B095",
      "lunch_option_id": "L095",
      "snack_type": "sweet",
      "snack_option_id": "SD048",
      "dinner_option_id": "D095",
      "total": {
        "kcal": 1922.49,
        "protein_g": 226.4,
        "carbs_g": 30.77,
        "fat_g": 102.94
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -8.81,
        "protein_g": 0.78,
        "carbs_g": -0.44,
        "fat_g": 3.56
      }
    },
    {
      "id": "DAY096",
      "breakfast_option_id": "B096",
      "lunch_option_id": "L096",
      "snack_type": "savory",
      "snack_option_id": "SS048",
      "dinner_option_id": "D096",
      "total": {
        "kcal": 2137.04,
        "protein_g": 255.45,
        "carbs_g": 24.69,
        "fat_g": 115.43
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -15.06,
        "protein_g": 1.87,
        "carbs_g": 0.45,
        "fat_g": 2.36
      }
    },
    {
      "id": "DAY097",
      "breakfast_option_id": "B097",
      "lunch_option_id": "L097",
      "snack_type": "sweet",
      "snack_option_id": "SD049",
      "dinner_option_id": "D097",
      "total": {
        "kcal": 1923.72,
        "protein_g": 226.68,
        "carbs_g": 31.47,
        "fat_g": 101.55
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -7.58,
        "protein_g": 1.06,
        "carbs_g": 0.26,
        "fat_g": 2.17
      }
    },
    {
      "id": "DAY098",
      "breakfast_option_id": "B098",
      "lunch_option_id": "L098",
      "snack_type": "savory",
      "snack_option_id": "SS049",
      "dinner_option_id": "D098",
      "total": {
        "kcal": 2136.9,
        "protein_g": 255.58,
        "carbs_g": 24.59,
        "fat_g": 115.92
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -15.2,
        "protein_g": 2.0,
        "carbs_g": 0.35,
        "fat_g": 2.85
      }
    },
    {
      "id": "DAY099",
      "breakfast_option_id": "B099",
      "lunch_option_id": "L099",
      "snack_type": "sweet",
      "snack_option_id": "SD050",
      "dinner_option_id": "D099",
      "total": {
        "kcal": 1922.86,
        "protein_g": 226.22,
        "carbs_g": 30.04,
        "fat_g": 102.43
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -8.44,
        "protein_g": 0.6,
        "carbs_g": -1.17,
        "fat_g": 3.05
      }
    },
    {
      "id": "DAY100",
      "breakfast_option_id": "B100",
      "lunch_option_id": "L100",
      "snack_type": "savory",
      "snack_option_id": "SS050",
      "dinner_option_id": "D100",
      "total": {
        "kcal": 2137.44,
        "protein_g": 255.3,
        "carbs_g": 24.61,
        "fat_g": 116.08
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -14.66,
        "protein_g": 1.72,
        "carbs_g": 0.37,
        "fat_g": 3.01
      }
    },
    {
      "id": "DAY101",
      "breakfast_option_id": "B101",
      "lunch_option_id": "L101",
      "snack_type": "sweet",
      "snack_option_id": "SD051",
      "dinner_option_id": "D101",
      "total": {
        "kcal": 1932.74,
        "protein_g": 224.9,
        "carbs_g": 35.07,
        "fat_g": 101.58
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 1.44,
        "protein_g": -0.72,
        "carbs_g": 3.86,
        "fat_g": 2.2
      }
    },
    {
      "id": "DAY102",
      "breakfast_option_id": "B102",
      "lunch_option_id": "L102",
      "snack_type": "savory",
      "snack_option_id": "SS051",
      "dinner_option_id": "D102",
      "total": {
        "kcal": 2139.66,
        "protein_g": 254.97,
        "carbs_g": 31.29,
        "fat_g": 114.24
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -12.44,
        "protein_g": 1.39,
        "carbs_g": 7.05,
        "fat_g": 1.17
      }
    },
    {
      "id": "DAY103",
      "breakfast_option_id": "B103",
      "lunch_option_id": "L103",
      "snack_type": "sweet",
      "snack_option_id": "SD052",
      "dinner_option_id": "D103",
      "total": {
        "kcal": 1927.25,
        "protein_g": 225.42,
        "carbs_g": 35.3,
        "fat_g": 101.37
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -4.05,
        "protein_g": -0.2,
        "carbs_g": 4.09,
        "fat_g": 1.99
      }
    },
    {
      "id": "DAY104",
      "breakfast_option_id": "B104",
      "lunch_option_id": "L104",
      "snack_type": "savory",
      "snack_option_id": "SS052",
      "dinner_option_id": "D104",
      "total": {
        "kcal": 2148.83,
        "protein_g": 253.52,
        "carbs_g": 31.25,
        "fat_g": 114.94
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -3.27,
        "protein_g": -0.06,
        "carbs_g": 7.01,
        "fat_g": 1.87
      }
    },
    {
      "id": "DAY105",
      "breakfast_option_id": "B105",
      "lunch_option_id": "L105",
      "snack_type": "sweet",
      "snack_option_id": "SD053",
      "dinner_option_id": "D105",
      "total": {
        "kcal": 1931.91,
        "protein_g": 224.93,
        "carbs_g": 36.72,
        "fat_g": 101.39
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 0.61,
        "protein_g": -0.69,
        "carbs_g": 5.51,
        "fat_g": 2.01
      }
    },
    {
      "id": "DAY106",
      "breakfast_option_id": "B106",
      "lunch_option_id": "L106",
      "snack_type": "savory",
      "snack_option_id": "SS053",
      "dinner_option_id": "D106",
      "total": {
        "kcal": 2149.57,
        "protein_g": 252.99,
        "carbs_g": 33.79,
        "fat_g": 114.69
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -2.53,
        "protein_g": -0.59,
        "carbs_g": 9.55,
        "fat_g": 1.62
      }
    },
    {
      "id": "DAY107",
      "breakfast_option_id": "B107",
      "lunch_option_id": "L107",
      "snack_type": "sweet",
      "snack_option_id": "SD054",
      "dinner_option_id": "D107",
      "total": {
        "kcal": 1927.41,
        "protein_g": 225.58,
        "carbs_g": 36.31,
        "fat_g": 100.89
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -3.89,
        "protein_g": -0.04,
        "carbs_g": 5.1,
        "fat_g": 1.51
      }
    },
    {
      "id": "DAY108",
      "breakfast_option_id": "B108",
      "lunch_option_id": "L108",
      "snack_type": "savory",
      "snack_option_id": "SS054",
      "dinner_option_id": "D108",
      "total": {
        "kcal": 2149.56,
        "protein_g": 253.39,
        "carbs_g": 31.19,
        "fat_g": 115.6
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -2.54,
        "protein_g": -0.19,
        "carbs_g": 6.95,
        "fat_g": 2.53
      }
    },
    {
      "id": "DAY109",
      "breakfast_option_id": "B109",
      "lunch_option_id": "L109",
      "snack_type": "sweet",
      "snack_option_id": "SD055",
      "dinner_option_id": "D109",
      "total": {
        "kcal": 1928.23,
        "protein_g": 225.34,
        "carbs_g": 37.49,
        "fat_g": 101.33
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -3.07,
        "protein_g": -0.28,
        "carbs_g": 6.28,
        "fat_g": 1.95
      }
    },
    {
      "id": "DAY110",
      "breakfast_option_id": "B110",
      "lunch_option_id": "L110",
      "snack_type": "savory",
      "snack_option_id": "SS055",
      "dinner_option_id": "D110",
      "total": {
        "kcal": 2150.44,
        "protein_g": 253.43,
        "carbs_g": 30.23,
        "fat_g": 115.52
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -1.66,
        "protein_g": -0.15,
        "carbs_g": 5.99,
        "fat_g": 2.45
      }
    },
    {
      "id": "DAY111",
      "breakfast_option_id": "B111",
      "lunch_option_id": "L111",
      "snack_type": "sweet",
      "snack_option_id": "SD056",
      "dinner_option_id": "D111",
      "total": {
        "kcal": 1923.44,
        "protein_g": 225.92,
        "carbs_g": 34.69,
        "fat_g": 100.97
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -7.86,
        "protein_g": 0.3,
        "carbs_g": 3.48,
        "fat_g": 1.59
      }
    },
    {
      "id": "DAY112",
      "breakfast_option_id": "B112",
      "lunch_option_id": "L112",
      "snack_type": "savory",
      "snack_option_id": "SS056",
      "dinner_option_id": "D112",
      "total": {
        "kcal": 2149.1,
        "protein_g": 253.67,
        "carbs_g": 30.49,
        "fat_g": 115.06
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -3.0,
        "protein_g": 0.09,
        "carbs_g": 6.25,
        "fat_g": 1.99
      }
    },
    {
      "id": "DAY113",
      "breakfast_option_id": "B113",
      "lunch_option_id": "L113",
      "snack_type": "sweet",
      "snack_option_id": "SD057",
      "dinner_option_id": "D113",
      "total": {
        "kcal": 1924.96,
        "protein_g": 225.98,
        "carbs_g": 36.2,
        "fat_g": 101.01
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -6.34,
        "protein_g": 0.36,
        "carbs_g": 4.99,
        "fat_g": 1.63
      }
    },
    {
      "id": "DAY114",
      "breakfast_option_id": "B114",
      "lunch_option_id": "L114",
      "snack_type": "savory",
      "snack_option_id": "SS057",
      "dinner_option_id": "D114",
      "total": {
        "kcal": 2148.44,
        "protein_g": 253.56,
        "carbs_g": 29.61,
        "fat_g": 115.49
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -3.66,
        "protein_g": -0.02,
        "carbs_g": 5.37,
        "fat_g": 2.42
      }
    },
    {
      "id": "DAY115",
      "breakfast_option_id": "B115",
      "lunch_option_id": "L115",
      "snack_type": "sweet",
      "snack_option_id": "SD058",
      "dinner_option_id": "D115",
      "total": {
        "kcal": 1924.55,
        "protein_g": 225.71,
        "carbs_g": 37.76,
        "fat_g": 100.4
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -6.75,
        "protein_g": 0.09,
        "carbs_g": 6.55,
        "fat_g": 1.02
      }
    },
    {
      "id": "DAY116",
      "breakfast_option_id": "B116",
      "lunch_option_id": "L116",
      "snack_type": "savory",
      "snack_option_id": "SS058",
      "dinner_option_id": "D116",
      "total": {
        "kcal": 2149.26,
        "protein_g": 253.16,
        "carbs_g": 31.77,
        "fat_g": 115.95
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -2.84,
        "protein_g": -0.42,
        "carbs_g": 7.53,
        "fat_g": 2.88
      }
    },
    {
      "id": "DAY117",
      "breakfast_option_id": "B117",
      "lunch_option_id": "L117",
      "snack_type": "sweet",
      "snack_option_id": "SD059",
      "dinner_option_id": "D117",
      "total": {
        "kcal": 1929.41,
        "protein_g": 225.13,
        "carbs_g": 40.71,
        "fat_g": 100.28
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -1.89,
        "protein_g": -0.49,
        "carbs_g": 9.5,
        "fat_g": 0.9
      }
    },
    {
      "id": "DAY118",
      "breakfast_option_id": "B118",
      "lunch_option_id": "L118",
      "snack_type": "savory",
      "snack_option_id": "SS059",
      "dinner_option_id": "D118",
      "total": {
        "kcal": 2144.45,
        "protein_g": 254.09,
        "carbs_g": 31.39,
        "fat_g": 114.22
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -7.65,
        "protein_g": 0.51,
        "carbs_g": 7.15,
        "fat_g": 1.15
      }
    },
    {
      "id": "DAY119",
      "breakfast_option_id": "B119",
      "lunch_option_id": "L119",
      "snack_type": "sweet",
      "snack_option_id": "SD060",
      "dinner_option_id": "D119",
      "total": {
        "kcal": 1924.39,
        "protein_g": 226.15,
        "carbs_g": 36.88,
        "fat_g": 100.68
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -6.91,
        "protein_g": 0.53,
        "carbs_g": 5.67,
        "fat_g": 1.3
      }
    },
    {
      "id": "DAY120",
      "breakfast_option_id": "B120",
      "lunch_option_id": "L120",
      "snack_type": "savory",
      "snack_option_id": "SS060",
      "dinner_option_id": "D120",
      "total": {
        "kcal": 2144.85,
        "protein_g": 253.94,
        "carbs_g": 31.31,
        "fat_g": 114.87
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -7.25,
        "protein_g": 0.36,
        "carbs_g": 7.07,
        "fat_g": 1.8
      }
    },
    {
      "id": "DAY121",
      "breakfast_option_id": "B121",
      "lunch_option_id": "L121",
      "snack_type": "sweet",
      "snack_option_id": "SD061",
      "dinner_option_id": "D121",
      "total": {
        "kcal": 1926.97,
        "protein_g": 225.77,
        "carbs_g": 36.86,
        "fat_g": 100.52
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -4.33,
        "protein_g": 0.15,
        "carbs_g": 5.65,
        "fat_g": 1.14
      }
    },
    {
      "id": "DAY122",
      "breakfast_option_id": "B122",
      "lunch_option_id": "L122",
      "snack_type": "savory",
      "snack_option_id": "SS061",
      "dinner_option_id": "D122",
      "total": {
        "kcal": 2154.32,
        "protein_g": 252.9,
        "carbs_g": 31.09,
        "fat_g": 115.16
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 2.22,
        "protein_g": -0.68,
        "carbs_g": 6.85,
        "fat_g": 2.09
      }
    },
    {
      "id": "DAY123",
      "breakfast_option_id": "B123",
      "lunch_option_id": "L123",
      "snack_type": "sweet",
      "snack_option_id": "SD062",
      "dinner_option_id": "D123",
      "total": {
        "kcal": 1922.09,
        "protein_g": 226.01,
        "carbs_g": 37.84,
        "fat_g": 100.22
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -9.21,
        "protein_g": 0.39,
        "carbs_g": 6.63,
        "fat_g": 0.84
      }
    },
    {
      "id": "DAY124",
      "breakfast_option_id": "B124",
      "lunch_option_id": "L124",
      "snack_type": "savory",
      "snack_option_id": "SS062",
      "dinner_option_id": "D124",
      "total": {
        "kcal": 2144.96,
        "protein_g": 253.94,
        "carbs_g": 30.4,
        "fat_g": 114.7
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -7.14,
        "protein_g": 0.36,
        "carbs_g": 6.16,
        "fat_g": 1.63
      }
    },
    {
      "id": "DAY125",
      "breakfast_option_id": "B125",
      "lunch_option_id": "L125",
      "snack_type": "sweet",
      "snack_option_id": "SD063",
      "dinner_option_id": "D125",
      "total": {
        "kcal": 1930.19,
        "protein_g": 225.47,
        "carbs_g": 38.79,
        "fat_g": 99.93
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -1.11,
        "protein_g": -0.15,
        "carbs_g": 7.58,
        "fat_g": 0.55
      }
    },
    {
      "id": "DAY126",
      "breakfast_option_id": "B126",
      "lunch_option_id": "L126",
      "snack_type": "savory",
      "snack_option_id": "SS063",
      "dinner_option_id": "D126",
      "total": {
        "kcal": 2148.47,
        "protein_g": 253.39,
        "carbs_g": 33.71,
        "fat_g": 114.5
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -3.63,
        "protein_g": -0.19,
        "carbs_g": 9.47,
        "fat_g": 1.43
      }
    },
    {
      "id": "DAY127",
      "breakfast_option_id": "B127",
      "lunch_option_id": "L127",
      "snack_type": "sweet",
      "snack_option_id": "SD064",
      "dinner_option_id": "D127",
      "total": {
        "kcal": 1925.3,
        "protein_g": 225.79,
        "carbs_g": 34.38,
        "fat_g": 101.23
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -6.0,
        "protein_g": 0.17,
        "carbs_g": 3.17,
        "fat_g": 1.85
      }
    },
    {
      "id": "DAY128",
      "breakfast_option_id": "B128",
      "lunch_option_id": "L128",
      "snack_type": "savory",
      "snack_option_id": "SS064",
      "dinner_option_id": "D128",
      "total": {
        "kcal": 2149.07,
        "protein_g": 253.33,
        "carbs_g": 31.17,
        "fat_g": 115.04
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -3.03,
        "protein_g": -0.25,
        "carbs_g": 6.93,
        "fat_g": 1.97
      }
    },
    {
      "id": "DAY129",
      "breakfast_option_id": "B129",
      "lunch_option_id": "L129",
      "snack_type": "sweet",
      "snack_option_id": "SD065",
      "dinner_option_id": "D129",
      "total": {
        "kcal": 1926.5,
        "protein_g": 225.67,
        "carbs_g": 35.32,
        "fat_g": 100.28
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -4.8,
        "protein_g": 0.05,
        "carbs_g": 4.11,
        "fat_g": 0.9
      }
    },
    {
      "id": "DAY130",
      "breakfast_option_id": "B130",
      "lunch_option_id": "L130",
      "snack_type": "savory",
      "snack_option_id": "SS065",
      "dinner_option_id": "D130",
      "total": {
        "kcal": 2145.76,
        "protein_g": 253.6,
        "carbs_g": 31.21,
        "fat_g": 115.61
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -6.34,
        "protein_g": 0.02,
        "carbs_g": 6.97,
        "fat_g": 2.54
      }
    },
    {
      "id": "DAY131",
      "breakfast_option_id": "B131",
      "lunch_option_id": "L131",
      "snack_type": "sweet",
      "snack_option_id": "SD066",
      "dinner_option_id": "D131",
      "total": {
        "kcal": 1927.47,
        "protein_g": 225.62,
        "carbs_g": 36.08,
        "fat_g": 100.89
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -3.83,
        "protein_g": 0.0,
        "carbs_g": 4.87,
        "fat_g": 1.51
      }
    },
    {
      "id": "DAY132",
      "breakfast_option_id": "B132",
      "lunch_option_id": "L132",
      "snack_type": "savory",
      "snack_option_id": "SS066",
      "dinner_option_id": "D132",
      "total": {
        "kcal": 2142.12,
        "protein_g": 254.37,
        "carbs_g": 31.34,
        "fat_g": 113.89
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -9.98,
        "protein_g": 0.79,
        "carbs_g": 7.1,
        "fat_g": 0.82
      }
    },
    {
      "id": "DAY133",
      "breakfast_option_id": "B133",
      "lunch_option_id": "L133",
      "snack_type": "sweet",
      "snack_option_id": "SD067",
      "dinner_option_id": "D133",
      "total": {
        "kcal": 1927.47,
        "protein_g": 225.62,
        "carbs_g": 36.08,
        "fat_g": 100.89
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -3.83,
        "protein_g": 0.0,
        "carbs_g": 4.87,
        "fat_g": 1.51
      }
    },
    {
      "id": "DAY134",
      "breakfast_option_id": "B134",
      "lunch_option_id": "L134",
      "snack_type": "savory",
      "snack_option_id": "SS067",
      "dinner_option_id": "D134",
      "total": {
        "kcal": 2144.0,
        "protein_g": 253.92,
        "carbs_g": 31.95,
        "fat_g": 114.56
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -8.1,
        "protein_g": 0.34,
        "carbs_g": 7.71,
        "fat_g": 1.49
      }
    },
    {
      "id": "DAY135",
      "breakfast_option_id": "B135",
      "lunch_option_id": "L135",
      "snack_type": "sweet",
      "snack_option_id": "SD068",
      "dinner_option_id": "D135",
      "total": {
        "kcal": 1927.09,
        "protein_g": 225.46,
        "carbs_g": 36.94,
        "fat_g": 100.45
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -4.21,
        "protein_g": -0.16,
        "carbs_g": 5.73,
        "fat_g": 1.07
      }
    },
    {
      "id": "DAY136",
      "breakfast_option_id": "B136",
      "lunch_option_id": "L136",
      "snack_type": "savory",
      "snack_option_id": "SS068",
      "dinner_option_id": "D136",
      "total": {
        "kcal": 2152.36,
        "protein_g": 253.31,
        "carbs_g": 31.12,
        "fat_g": 114.81
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 0.26,
        "protein_g": -0.27,
        "carbs_g": 6.88,
        "fat_g": 1.74
      }
    },
    {
      "id": "DAY137",
      "breakfast_option_id": "B137",
      "lunch_option_id": "L137",
      "snack_type": "sweet",
      "snack_option_id": "SD069",
      "dinner_option_id": "D137",
      "total": {
        "kcal": 1921.02,
        "protein_g": 226.28,
        "carbs_g": 35.33,
        "fat_g": 101.68
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -10.28,
        "protein_g": 0.66,
        "carbs_g": 4.12,
        "fat_g": 2.3
      }
    },
    {
      "id": "DAY138",
      "breakfast_option_id": "B138",
      "lunch_option_id": "L138",
      "snack_type": "savory",
      "snack_option_id": "SS069",
      "dinner_option_id": "D138",
      "total": {
        "kcal": 2141.7,
        "protein_g": 254.35,
        "carbs_g": 30.33,
        "fat_g": 114.73
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -10.4,
        "protein_g": 0.77,
        "carbs_g": 6.09,
        "fat_g": 1.66
      }
    },
    {
      "id": "DAY139",
      "breakfast_option_id": "B139",
      "lunch_option_id": "L139",
      "snack_type": "sweet",
      "snack_option_id": "SD070",
      "dinner_option_id": "D139",
      "total": {
        "kcal": 1929.26,
        "protein_g": 224.85,
        "carbs_g": 35.82,
        "fat_g": 102.09
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -2.04,
        "protein_g": -0.77,
        "carbs_g": 4.61,
        "fat_g": 2.71
      }
    },
    {
      "id": "DAY140",
      "breakfast_option_id": "B140",
      "lunch_option_id": "L140",
      "snack_type": "savory",
      "snack_option_id": "SS070",
      "dinner_option_id": "D140",
      "total": {
        "kcal": 2146.58,
        "protein_g": 253.44,
        "carbs_g": 31.25,
        "fat_g": 115.87
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -5.52,
        "protein_g": -0.14,
        "carbs_g": 7.01,
        "fat_g": 2.8
      }
    },
    {
      "id": "DAY141",
      "breakfast_option_id": "B141",
      "lunch_option_id": "L141",
      "snack_type": "sweet",
      "snack_option_id": "SD071",
      "dinner_option_id": "D141",
      "total": {
        "kcal": 1940.96,
        "protein_g": 224.28,
        "carbs_g": 36.4,
        "fat_g": 98.45
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 9.66,
        "protein_g": -1.34,
        "carbs_g": 5.19,
        "fat_g": -0.93
      }
    },
    {
      "id": "DAY142",
      "breakfast_option_id": "B142",
      "lunch_option_id": "L142",
      "snack_type": "savory",
      "snack_option_id": "SS071",
      "dinner_option_id": "D142",
      "total": {
        "kcal": 2142.1,
        "protein_g": 254.74,
        "carbs_g": 32.2,
        "fat_g": 114.26
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -10.0,
        "protein_g": 1.16,
        "carbs_g": 7.96,
        "fat_g": 1.19
      }
    },
    {
      "id": "DAY143",
      "breakfast_option_id": "B143",
      "lunch_option_id": "L143",
      "snack_type": "sweet",
      "snack_option_id": "SD072",
      "dinner_option_id": "D143",
      "total": {
        "kcal": 1925.69,
        "protein_g": 225.7,
        "carbs_g": 38.37,
        "fat_g": 99.95
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -5.61,
        "protein_g": 0.08,
        "carbs_g": 7.16,
        "fat_g": 0.57
      }
    },
    {
      "id": "DAY144",
      "breakfast_option_id": "B144",
      "lunch_option_id": "L144",
      "snack_type": "savory",
      "snack_option_id": "SS072",
      "dinner_option_id": "D144",
      "total": {
        "kcal": 2151.63,
        "protein_g": 253.06,
        "carbs_g": 32.57,
        "fat_g": 115.27
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -0.47,
        "protein_g": -0.52,
        "carbs_g": 8.33,
        "fat_g": 2.2
      }
    },
    {
      "id": "DAY145",
      "breakfast_option_id": "B145",
      "lunch_option_id": "L145",
      "snack_type": "sweet",
      "snack_option_id": "SD073",
      "dinner_option_id": "D145",
      "total": {
        "kcal": 1932.43,
        "protein_g": 224.7,
        "carbs_g": 37.53,
        "fat_g": 100.82
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": 1.13,
        "protein_g": -0.92,
        "carbs_g": 6.32,
        "fat_g": 1.44
      }
    },
    {
      "id": "DAY146",
      "breakfast_option_id": "B146",
      "lunch_option_id": "L146",
      "snack_type": "savory",
      "snack_option_id": "SS073",
      "dinner_option_id": "D146",
      "total": {
        "kcal": 2149.04,
        "protein_g": 253.5,
        "carbs_g": 33.32,
        "fat_g": 113.74
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -3.06,
        "protein_g": -0.08,
        "carbs_g": 9.08,
        "fat_g": 0.67
      }
    },
    {
      "id": "DAY147",
      "breakfast_option_id": "B147",
      "lunch_option_id": "L147",
      "snack_type": "sweet",
      "snack_option_id": "SD074",
      "dinner_option_id": "D147",
      "total": {
        "kcal": 1927.37,
        "protein_g": 225.56,
        "carbs_g": 36.31,
        "fat_g": 100.89
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -3.93,
        "protein_g": -0.06,
        "carbs_g": 5.1,
        "fat_g": 1.51
      }
    },
    {
      "id": "DAY148",
      "breakfast_option_id": "B148",
      "lunch_option_id": "L148",
      "snack_type": "savory",
      "snack_option_id": "SS074",
      "dinner_option_id": "D148",
      "total": {
        "kcal": 2150.04,
        "protein_g": 253.19,
        "carbs_g": 33.16,
        "fat_g": 114.43
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -2.06,
        "protein_g": -0.39,
        "carbs_g": 8.92,
        "fat_g": 1.36
      }
    },
    {
      "id": "DAY149",
      "breakfast_option_id": "B149",
      "lunch_option_id": "L149",
      "snack_type": "sweet",
      "snack_option_id": "SD075",
      "dinner_option_id": "D149",
      "total": {
        "kcal": 1929.99,
        "protein_g": 225.01,
        "carbs_g": 38.0,
        "fat_g": 100.23
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -1.31,
        "protein_g": -0.61,
        "carbs_g": 6.79,
        "fat_g": 0.85
      }
    },
    {
      "id": "DAY150",
      "breakfast_option_id": "B150",
      "lunch_option_id": "L150",
      "snack_type": "savory",
      "snack_option_id": "SS075",
      "dinner_option_id": "D150",
      "total": {
        "kcal": 2150.83,
        "protein_g": 253.08,
        "carbs_g": 33.11,
        "fat_g": 114.93
      },
      "delta_vs_corresponding_daily_target": {
        "kcal": -1.27,
        "protein_g": -0.5,
        "carbs_g": 8.87,
        "fat_g": 1.86
      }
    }
  ],
  "validation": {
    "expected_counts": {
      "breakfast": 150,
      "lunch": 150,
      "afternoon_snack_sweet": 75,
      "afternoon_snack_savory": 75,
      "dinner": 150
    },
    "actual_counts": {
      "breakfast": 150,
      "lunch": 150,
      "afternoon_snack_sweet": 75,
      "afternoon_snack_savory": 75,
      "dinner": 150
    },
    "excluded_ingredient_violations": [],
    "source_coverage": {
      "breakfast": 1.0,
      "lunch": 1.0,
      "afternoon_snack_sweet": 1.0,
      "afternoon_snack_savory": 1.0,
      "dinner": 1.0
    },
    "macro_deviation_summary": {
      "breakfast": {
        "kcal": {
          "max_abs": 9.05,
          "mean_abs": 3.67
        },
        "protein_g": {
          "max_abs": 1.31,
          "mean_abs": 0.44
        },
        "carbs_g": {
          "max_abs": 9.28,
          "mean_abs": 2.76
        },
        "fat_g": {
          "max_abs": 2.13,
          "mean_abs": 0.79
        }
      },
      "lunch": {
        "kcal": {
          "max_abs": 9.58,
          "mean_abs": 4.27
        },
        "protein_g": {
          "max_abs": 2.29,
          "mean_abs": 0.5
        },
        "carbs_g": {
          "max_abs": 0.53,
          "mean_abs": 0.16
        },
        "fat_g": {
          "max_abs": 1.81,
          "mean_abs": 0.91
        }
      },
      "afternoon_snack_sweet": {
        "kcal": {
          "max_abs": 1.66,
          "mean_abs": 0.49
        },
        "protein_g": {
          "max_abs": 0.2,
          "mean_abs": 0.07
        },
        "carbs_g": {
          "max_abs": 2.99,
          "mean_abs": 0.99
        },
        "fat_g": {
          "max_abs": 1.18,
          "mean_abs": 0.46
        }
      },
      "afternoon_snack_savory": {
        "kcal": {
          "max_abs": 3.8,
          "mean_abs": 1.95
        },
        "protein_g": {
          "max_abs": 0.71,
          "mean_abs": 0.27
        },
        "carbs_g": {
          "max_abs": 0.85,
          "mean_abs": 0.15
        },
        "fat_g": {
          "max_abs": 1.24,
          "mean_abs": 0.72
        }
      },
      "dinner": {
        "kcal": {
          "max_abs": 8.05,
          "mean_abs": 4.04
        },
        "protein_g": {
          "max_abs": 1.0,
          "mean_abs": 0.42
        },
        "carbs_g": {
          "max_abs": 0.8,
          "mean_abs": 0.23
        },
        "fat_g": {
          "max_abs": 1.91,
          "mean_abs": 0.83
        }
      }
    },
    "preparation_enrichment": {
      "status": "passed",
      "recipe_count_with_preparation": 361,
      "recipe_count_total": 361,
      "coverage": {
        "recipes_with_at_least_one_direct_method_source": 290,
        "recipes_total": 361,
        "recipes_with_source_family_or_structured_overview_only": 70,
        "recipes_with_existing_overview_only": 1,
        "source_methods_total": 117,
        "source_methods_direct_method_paraphrase": 72,
        "source_methods_source_family_or_existing_overview": 40,
        "source_methods_existing_source_overview_only": 5
      },
      "meal_options_unchanged": true,
      "ingredients_unchanged": true,
      "targets_unchanged": true,
      "excluded_food_scan_terms": [
        "abobrinha",
        "zucchini",
        "courgette",
        "chuchu",
        "chayote",
        "beterraba",
        "beetroot"
      ],
      "notes": "Termos excluídos podem aparecer em metadados históricos de fonte apenas se uma fonte os mencionar; não são autorizados como ingredientes por preparation_methodology.ingredient_authority_rule."
    }
  },
  "preparation_methodology": {
    "version": "1.1",
    "purpose": "Transformar as fontes culinárias e adaptações nutricionais em instruções operacionais reproduzíveis sem reintroduzir ingredientes removidos.",
    "ingredient_authority_rule": "A porção em meal_options é a autoridade para quantidades e ingredientes contabilizados. seasoning_text/seasoning_refs e trace_ingredients autorizam apenas os aromáticos/condimentos ali descritos.",
    "source_role": "As fontes culinárias são autoridade para técnica, sequência, textura e condições de cocção; seus ingredientes originais não migram automaticamente para a adaptação.",
    "weight_measurement_rule": {
      "general": "Pesar no estado descrito pelo nome do ingrediente nutricional.",
      "cooked_examples": "Itens descritos como cozido/grelhado/assado/torrado são porcionados após a cocção, no estado com que os macros foram calculados.",
      "raw_examples": "Itens descritos como cru são pesados antes da cocção/mistura.",
      "oil": "A gordura culinária deve respeitar a quantidade em gramas da alternativa; frigideira antiaderente ajuda a evitar óleo extra não contabilizado.",
      "state_transition": "Quando a técnica começa com matéria-prima crua (ex.: almôndega, kofta, hambúrguer), a gramagem operacional já foi convertida para o estado cru/pronto para cozinhar. Pesar antes da cocção; o estado cozido é mantido apenas como referência histórica do cálculo nutricional."
    },
    "time_temperature_policy": "Tempo e temperatura da fonte são mantidos como referência quando a geometria/corte e a técnica são comparáveis. Quando a adaptação troca coxa por peito, ave inteira por cubos, ou altera significativamente a massa, o endpoint de textura/doneness prevalece e o tempo original é explicitamente marcado apenas como referência.",
    "batch_cooking_policy": "Preparações podem ser feitas em lote, mas cada marmita deve ser porcionada pelos pesos da alternativa após o estado de cocção especificado. Componentes crocantes, folhas e molhos frios devem permanecer separados quando a ficha indicar.",
    "copyright_policy": "Métodos foram parafraseados e resumidos; o JSON mantém os links para consulta das receitas originais.",
    "raw_precursor_rule": "Para almôndegas, koftas/kofte e hambúrgueres, quando os macros usam carne cozida/grelhada/assada, o preparo começa com a mesma matéria-prima crua moída. Não se estima conversão de peso; cozinha-se e pesa-se o produto final.",
    "source_resolution_rule": "Sempre que foi possível recuperar uma página individual da receita antes referenciada por coleção, a v3.3 substitui a coleção pela página específica e marca o método como direct_method_paraphrase. Fontes ainda classificadas como família/overview permanecem explicitamente marcadas como tal."
  },
  "preparation_method_library": {
    "PM-SRC-001A054ACD": {
      "id": "PM-SRC-001A054ACD",
      "source_id": "SRC-001A054ACD",
      "source_title": "Lemon & fennel pork meatballs",
      "source_url": "https://www.bbcgoodfood.com/recipes/lemon-fennel-pork-meatballs",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela",
        "frigideira com tampa",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Misturar carne suína crua moída, raspas de limão, sementes de erva-doce e temperos autorizados.",
        "Moldar em bolas uniformes.",
        "Dourar em fogo médio até formar cor em toda a superfície.",
        "Quando houver molho autorizado, terminar nele em fervura suave; na versão sem molho, concluir a cocção na frigideira/forno sem acrescentar ingredientes da fonte."
      ],
      "source_time_reference": "fonte: dourar ~5 min; depois ~10 min no molho (mais 5 min com kale na receita original)",
      "source_temperature_reference": "fogo médio; fervura suave no molho",
      "source_endpoint_reference": "douradas e cozidas no centro",
      "adaptation_guardrails": [
        "Tomate, kale, pinoli e acompanhamentos da fonte são omitidos na versão de lanche."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-025FA125E0": {
      "id": "PM-SRC-025FA125E0",
      "source_id": "SRC-025FA125E0",
      "source_title": "Lemon & five-spice chicken — 4.4/5 (13)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/lemon-chicken-recipes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "saco/tigela de marinada",
        "grelha ou barbecue"
      ],
      "source_method_paraphrase": [
        "Misturar limão, gengibre, alho, five-spice e demais temperos autorizados; envolver o frango.",
        "Marinar por pelo menos 10 min; a fonte permite até 24 h.",
        "Retirar excesso de marinada e grelhar, virando ocasionalmente, até escurecer/dourar e cozinhar por completo."
      ],
      "source_time_reference": "fonte: ~20 min para coxas; marinada 10 min–24 h",
      "source_temperature_reference": "grill alto/BBQ; controlar para não queimar",
      "source_endpoint_reference": "escuro/dourado por fora e cozido",
      "adaptation_guardrails": [
        "Açúcar, sherry e molho de soja só entram se estiverem autorizados; para peito, reduzir tempo conforme espessura."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-02A27AA42E": {
      "id": "PM-SRC-02A27AA42E",
      "source_id": "SRC-02A27AA42E",
      "source_title": "Instant frozen berry yogurt — 4.7/5 (76)",
      "source_url": "https://www.bbcgoodfood.com/recipes/instant-frozen-berry-yogurt",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "processador potente"
      ],
      "source_method_paraphrase": [
        "Usar a fruta congelada e o iogurte zero lactose bem frio.",
        "Processar junto com whey/ingredientes autorizados somente até formar textura lisa de sorvete.",
        "Consumir imediatamente para preservar a textura."
      ],
      "source_time_reference": "fonte: cerca de 20 s de processamento",
      "source_temperature_reference": "sem cocção; ingredientes congelados/frios",
      "source_endpoint_reference": "textura lisa de sorvete soft, sem derreter",
      "adaptation_guardrails": [
        "Mel/agave não entra salvo se listado."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-04F03C7B96": {
      "id": "PM-SRC-04F03C7B96",
      "source_id": "SRC-04F03C7B96",
      "source_title": "Roasted aubergine, tomato & basil pasta",
      "source_url": "https://www.bbcgoodfood.com/recipes/roasted-aubergine-tomato-basil-pasta",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "assadeira",
        "forno"
      ],
      "source_method_paraphrase": [
        "Aquecer forno alto e distribuir cubos de berinjela com azeite autorizado e alho em camada única.",
        "Assar inicialmente até começar a dourar.",
        "Adicionar tomate e continuar apenas até amaciar/concentrar sem transformar tudo em purê.",
        "Finalizar com manjericão/ervas autorizadas."
      ],
      "source_time_reference": "fonte: berinjela ~10 min antes de adicionar tomate; tomate ~5 min adicionais",
      "source_temperature_reference": "220°C / 200°C ventilado",
      "source_endpoint_reference": "berinjela macia e tostada; tomate concentrado",
      "adaptation_guardrails": [
        "Omitir massa, açúcar e vinagre se não estiverem autorizados."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-08D66807B8": {
      "id": "PM-SRC-08D66807B8",
      "source_id": "SRC-08D66807B8",
      "source_title": "Frango churrasco (Grilled lemon & garlic chicken)",
      "source_url": "https://www.bbcgoodfood.com/recipes/frango-churrasco-grilled-lemon-garlic-chicken",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela não metálica",
        "grelha/chapa ou grill",
        "espetos opcionais"
      ],
      "source_method_paraphrase": [
        "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada.",
        "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro.",
        "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada.",
        "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
      ],
      "source_time_reference": "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h",
      "source_temperature_reference": "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido",
      "source_endpoint_reference": "bem dourado por fora e cozido por completo",
      "adaptation_guardrails": [
        "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
        "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-09216EB51F": {
      "id": "PM-SRC-09216EB51F",
      "source_id": "SRC-09216EB51F",
      "source_title": "Greek salad omelette — 4.8/5 (63)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/omelette-recipes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira antiaderente apta para grill/forno",
        "batedor",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Aquecer o grill/forno superior e bater os ovos.",
        "Dourar cebola em fogo alto; adicionar tomate e cozinhar brevemente até começar a amolecer.",
        "Baixar para fogo médio, adicionar os ovos e mexer enquanto começam a firmar, deixando pontos ainda líquidos.",
        "Distribuir o queijo da versão adaptada e finalizar sob grill até inflar e dourar."
      ],
      "source_time_reference": "cebola ~4 min; tomate 1–2 min; ovos ~2 min no fogão; grill 5–6 min",
      "source_temperature_reference": "fogo alto → médio; grill alto",
      "source_endpoint_reference": "inflada, dourada e firme, sem ressecar",
      "adaptation_guardrails": [
        "Feta/azeitonas só entram se constarem na versão adaptada; quando indicado, muçarela zero lactose substitui feta."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-0D69818314": {
      "id": "PM-SRC-0D69818314",
      "source_id": "SRC-0D69818314",
      "source_title": "Keto dessert recipes",
      "source_url": "https://www.bbcgoodfood.com/recipes/keto-dessert-recipes",
      "extraction_status": "source_family_or_existing_overview",
      "equipment": [
        "forma/ramequim/molde indicado",
        "forno ou air fryer"
      ],
      "source_method_paraphrase": [
        "Misturar os ingredientes líquidos e secos da versão adaptada até homogêneo, evitando bater em excesso depois que a estrutura estiver formada.",
        "Distribuir no molde indicado na ficha.",
        "Assar/air fry até as bordas firmarem e o centro passar de líquido para elástico/firme.",
        "Descansar antes de desenformar para estabilizar a estrutura."
      ],
      "source_time_reference": "tempo depende do molde e da composição adaptada",
      "source_temperature_reference": "forno/air fryer moderado; usar endpoint",
      "source_endpoint_reference": "bordas firmes, centro cozido e estrutura que se mantém ao esfriar",
      "adaptation_guardrails": [
        "Não importar farinhas/adoçantes/gorduras da fonte que não constem na porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-0E25C4C87F": {
      "id": "PM-SRC-0E25C4C87F",
      "source_id": "SRC-0E25C4C87F",
      "source_title": "Aubergine with yogurt & tomato sauces — 4.0/5 (2)",
      "source_url": "https://www.bbcgoodfood.com/recipes/aubergine-yogurt-tomato-sauces",
      "extraction_status": "source_family_or_existing_overview",
      "equipment": [
        "frigideira/grelha ou forno",
        "tigelas para molhos"
      ],
      "source_method_paraphrase": [
        "Assar/grelhar a berinjela até macia e bem dourada.",
        "Preparar o componente de tomate até concentrar e esfriar levemente.",
        "Preparar o molho de iogurte zero lactose frio com os temperos autorizados.",
        "Montar em camadas apenas ao servir ou manter os molhos separados para marmita."
      ],
      "source_time_reference": "receita-fonte ~30 min total",
      "source_temperature_reference": "calor alto para a berinjela; molhos em calor suave/frio",
      "source_endpoint_reference": "berinjela macia; tomate espesso; iogurte frio e cremoso",
      "adaptation_guardrails": [
        "Usar apenas quantidades/ingredientes da versão adaptada."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-0FB2713DE2": {
      "id": "PM-SRC-0FB2713DE2",
      "source_id": "SRC-0FB2713DE2",
      "source_title": "Omelette roll-up",
      "source_url": "https://www.bbcgoodfood.com/recipes/mexican-egg-roll",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela",
        "garfo/batedor",
        "frigideira média antiaderente",
        "tábua"
      ],
      "source_method_paraphrase": [
        "Bater o ovo com pequena quantidade de água somente se compatível com a porção.",
        "Aquecer a frigideira antiaderente com apenas a gordura prevista.",
        "Adicionar o ovo e girar para cobrir a base como uma panqueca; cozinhar até firmar, sem necessidade de virar.",
        "Deslizar para uma tábua, adicionar apenas o recheio/molho autorizado e enrolar ainda flexível."
      ],
      "source_time_reference": "fonte: ~10 min de cocção total da receita; lâmina de ovo cozinha em poucos minutos",
      "source_temperature_reference": "fogo moderado",
      "source_endpoint_reference": "lâmina fina de omelete totalmente firme, mas flexível para enrolar",
      "adaptation_guardrails": [
        "Salsa e coentro da fonte só entram se autorizados."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-14024CE8FA": {
      "id": "PM-SRC-14024CE8FA",
      "source_id": "SRC-14024CE8FA",
      "source_title": "Lemon & rosemary pork with chickpea salad",
      "source_url": "https://www.bbcgoodfood.com/recipes/lemon-rosemary-pork-chickpea-salad",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela",
        "frigideira antiaderente",
        "pegador"
      ],
      "source_method_paraphrase": [
        "Misturar azeite contabilizado, alecrim, alho, suco/raspas de limão e temperos; envolver os medalhões/fatias de porco.",
        "Marinar sob refrigeração por cerca de 30 min quando houver tempo.",
        "Aquecer bem a frigideira antiaderente, retirar excesso superficial de marinada e cozinhar a carne dos dois lados.",
        "Retirar ao atingir o ponto de cocção e deixar repousar antes de porcionar pelo peso cru indicado antes da cocção."
      ],
      "source_time_reference": "fonte: 3–4 min de cada lado para pork steaks; marinada opcional ~30 min",
      "source_temperature_reference": "frigideira bem quente",
      "source_endpoint_reference": "dourado por fora e cozido; repousado antes de pesar/porcionar",
      "adaptation_guardrails": [
        "Grão-de-bico, cebola e salada da fonte não entram na receita de lombo; o tempo depende da espessura do corte."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-14CCEF0B5D": {
      "id": "PM-SRC-14CCEF0B5D",
      "source_id": "SRC-14CCEF0B5D",
      "source_title": "Classic crêpes",
      "source_url": "https://www.bbcgoodfood.com/recipes/classic-crepes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela ou jarra",
        "batedor",
        "frigideira larga antiaderente",
        "concha pequena",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Misturar a massa adaptada até ficar totalmente lisa e homogênea.",
        "Quando a estrutura da massa permitir, deixar repousar antes da cocção; a fonte clássica repousa a massa por 30 min.",
        "Aquecer a frigideira em fogo médio e usar somente a gordura contabilizada, formando uma película muito fina.",
        "Colocar pouca massa e girar a frigideira para formar uma camada fina.",
        "Cozinhar o primeiro lado até dourar e soltar; virar e terminar rapidamente o segundo lado. A fonte usa cerca de 45 s no primeiro lado e 30 s no segundo."
      ],
      "source_time_reference": "fonte: repouso 30 min; ~45 s no primeiro lado e ~30 s no segundo por crêpe",
      "source_temperature_reference": "fogo médio",
      "source_endpoint_reference": "crêpe fino, flexível, levemente dourado e sem centro cru",
      "adaptation_guardrails": [
        "Não reintroduzir farinha, leite, açúcar ou manteiga da fonte se não constarem na porção adaptada. O tempo deve ser encurtado se a massa adaptada for menor/mais proteica."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-1780962D35": {
      "id": "PM-SRC-1780962D35",
      "source_id": "SRC-1780962D35",
      "source_title": "Healthy pepper, tomato & ham omelette — 4.6/5 (41)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/healthy-omelette-recipes",
      "extraction_status": "existing_source_overview_only",
      "equipment": [],
      "source_method_paraphrase": [],
      "source_time_reference": null,
      "source_temperature_reference": null,
      "source_endpoint_reference": null,
      "adaptation_guardrails": [],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-1916763C6B": {
      "id": "PM-SRC-1916763C6B",
      "source_id": "SRC-1916763C6B",
      "source_title": "Healthy snacks with yogurt",
      "source_url": "https://www.eatingwell.com/healthy-yogurt-snack-recipes-11963153",
      "extraction_status": "source_family_or_existing_overview",
      "equipment": [
        "copo/pote",
        "colher"
      ],
      "source_method_paraphrase": [
        "Misturar iogurte zero lactose e whey até homogêneo.",
        "Preparar fruta em purê, macerada ou cubos conforme o nome da receita.",
        "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver.",
        "Manter refrigerado."
      ],
      "source_time_reference": "montagem fria; sem cocção",
      "source_temperature_reference": "refrigerado",
      "source_endpoint_reference": "creme espesso, camadas definidas e crocante seco",
      "adaptation_guardrails": [
        "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-1A3490590C": {
      "id": "PM-SRC-1A3490590C",
      "source_id": "SRC-1A3490590C",
      "source_title": "Chicken paillard with lemon & herbs — 4.8/5 (43)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/lemon-chicken-recipes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "martelo de carne ou rolo",
        "papel manteiga/filme",
        "grelha/chapa"
      ],
      "source_method_paraphrase": [
        "Achatar o peito entre folhas até espessura uniforme de aproximadamente 0,5 cm.",
        "Misturar alho, ervas, limão, azeite e temperos autorizados; cobrir o frango e marinar sob refrigeração.",
        "Grelhar rapidamente em superfície muito quente, virando uma vez.",
        "Descansar por alguns minutos antes de servir ou fatiar."
      ],
      "source_time_reference": "marinada ≥2 h; fonte: 1–2 min por lado para 0,5 cm",
      "source_temperature_reference": "grelha/chapa muito quente",
      "source_endpoint_reference": "marcas de grelha e centro cozido sem ressecar",
      "adaptation_guardrails": [
        "O tempo de 1–2 min/lado pressupõe a espessura fina da fonte."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-1E5EE3F844": {
      "id": "PM-SRC-1E5EE3F844",
      "source_id": "SRC-1E5EE3F844",
      "source_title": "Classic vinaigrette",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/salad-dressing-recipes",
      "extraction_status": "source_family_or_existing_overview",
      "equipment": [
        "pote com tampa ou batedor"
      ],
      "source_method_paraphrase": [
        "Combinar ácido, mostarda/aromáticos autorizados e temperos.",
        "Adicionar a gordura contabilizada em fio ou agitar vigorosamente até emulsificar.",
        "Aplicar somente no momento de servir as folhas para preservar crocância."
      ],
      "source_time_reference": "1–2 min de emulsificação/montagem",
      "source_temperature_reference": "frio",
      "source_endpoint_reference": "emulsão temporariamente homogênea",
      "adaptation_guardrails": [
        "A quantidade de óleo deve ser exatamente a da porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-20D4788A6F": {
      "id": "PM-SRC-20D4788A6F",
      "source_id": "SRC-20D4788A6F",
      "source_title": "Strawberry ice lollies — 5.0/5 (5)",
      "source_url": "https://www.bbcgoodfood.com/recipes/strawberry-ice-lollies",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "liquidificador",
        "formas de picolé",
        "freezer"
      ],
      "source_method_paraphrase": [
        "Processar morango até purê e misturar com iogurte/whey autorizados.",
        "Distribuir nas formas, deixando espaço adequado para o palito.",
        "Congelar até sólido."
      ],
      "source_time_reference": "fonte: pelo menos 4 h de freezer",
      "source_temperature_reference": "freezer",
      "source_endpoint_reference": "completamente firme",
      "adaptation_guardrails": [
        "Açúcar/mel da fonte não entra; pequenos pedaços de morango podem ser incorporados quando a ficha pedir textura."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-2227CA24C9": {
      "id": "PM-SRC-2227CA24C9",
      "source_id": "SRC-2227CA24C9",
      "source_title": "Pork stroganoff",
      "source_url": "https://www.bbcgoodfood.com/recipes/pork-stroganoff",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira larga",
        "espátula ou pinça"
      ],
      "source_method_paraphrase": [
        "Dourar os cogumelos em lotes até a água liberada evaporar e reservar.",
        "Selar o lombo em pedaços/tiras na gordura contabilizada; a fonte usa 5–8 min para cubos de 1 cm, mas a adaptação deve seguir o tamanho real do corte.",
        "Cozinhar a cebola/aromáticos autorizados em fogo baixo-médio até amaciar e começar a caramelizar; na fonte, cerca de 10–12 min.",
        "Reunir carne e cogumelos, adicionar páprica, mostarda e somente o líquido autorizado, raspando o fundo da panela.",
        "Incorporar o iogurte/lácteo zero lactose previsto no final, em calor suave, apenas até aquecer e homogeneizar."
      ],
      "source_time_reference": "fonte: porco 5–8 min; cebola 10–12 min; lácteo final ~2 min",
      "source_temperature_reference": "médio para cogumelos/carne; baixo-médio para cebola; suave após o lácteo",
      "source_endpoint_reference": "carne cozida sem ressecar, cogumelos dourados e molho cremoso sem separar",
      "adaptation_guardrails": [
        "Usar iogurte/lácteo zero lactose apenas se estiver na porção. Não ferver vigorosamente após incorporá-lo."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-2254C533D0": {
      "id": "PM-SRC-2254C533D0",
      "source_id": "SRC-2254C533D0",
      "source_title": "Breakfast pancake recipes",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/breakfast-pancake-recipes",
      "extraction_status": "source_family_or_existing_overview",
      "equipment": [
        "frigideira antiaderente larga",
        "concha",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Misturar/bater a massa adaptada até ficar fluida e homogênea.",
        "Aquecer frigideira larga com película mínima da gordura prevista.",
        "Adicionar pouca massa e girar a frigideira para formar camada fina.",
        "Cozinhar até soltar das bordas, virar e terminar rapidamente o outro lado."
      ],
      "source_time_reference": "crêpes cozinham rapidamente; usar aparência das bordas como guia",
      "source_temperature_reference": "fogo médio",
      "source_endpoint_reference": "fina, flexível, com leves pontos dourados",
      "adaptation_guardrails": [
        "A massa é proteica/low-carb; não adicionar farinha/leite da fonte se ausentes."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-2583A03398": {
      "id": "PM-SRC-2583A03398",
      "source_id": "SRC-2583A03398",
      "source_title": "Pumpkin, halloumi & chilli omelette — 4.7/5 (31)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/omelette-recipes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira antiaderente apta para grill",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Pré-cozinhar/dourar a abóbora até macia nas bordas.",
        "Adicionar alho/pimenta autorizados brevemente para perfumar.",
        "Adicionar ovos e queijo da adaptação; firmar a base no fogão.",
        "Finalizar sob grill até inflar e dourar."
      ],
      "source_time_reference": "fonte: abóbora ~10 min; aromáticos ~2 min; fogão ~5 min; grill ~5 min",
      "source_temperature_reference": "frigideira média; grill alto",
      "source_endpoint_reference": "abóbora macia; omelete inflada e dourada",
      "adaptation_guardrails": [
        "Halloumi só é usado se autorizado; normalmente a adaptação usa outro queijo."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-27DD56ED21": {
      "id": "PM-SRC-27DD56ED21",
      "source_id": "SRC-27DD56ED21",
      "source_title": "Pumpkin purée",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/pumpkin-recipes",
      "extraction_status": "source_family_or_existing_overview",
      "equipment": [
        "assadeira ou panela",
        "processador/amassador"
      ],
      "source_method_paraphrase": [
        "Cozinhar ou assar a abóbora até ficar totalmente macia.",
        "Escorrer/evaporar o excesso de água.",
        "Processar ou amassar até textura lisa; ajustar apenas com os ingredientes autorizados."
      ],
      "source_time_reference": "fonte ~40 min total",
      "source_temperature_reference": "forno/cozimento conforme método; ponto de maciez controla",
      "source_endpoint_reference": "purê liso e espesso",
      "adaptation_guardrails": [
        "Sem farinha; evitar adicionar líquido que não esteja contabilizado."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-28230B968D": {
      "id": "PM-SRC-28230B968D",
      "source_id": "SRC-28230B968D",
      "source_title": "Simple sirloin steak",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/steak-recipes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira pesada",
        "pinça"
      ],
      "source_method_paraphrase": [
        "Retirar o bife da geladeira com antecedência curta, secar a superfície e temperar.",
        "Aquecer a frigideira em fogo alto com a gordura prevista; reduzir levemente quando a gordura estiver quente.",
        "Selar virando a cada 30–60 s para desenvolver crosta uniforme.",
        "Retirar no ponto desejado, repousar e fatiar contra a fibra quando aplicável."
      ],
      "source_time_reference": "fonte para steak ~2 cm: ~3 min rare; 4–5 min medium; 7–8 min well done",
      "source_temperature_reference": "fogo alto → médio-alto; fonte cita 50°C rare, 60°C medium, 70°C well done",
      "source_endpoint_reference": "crosta marrom; ponto interno escolhido",
      "adaptation_guardrails": [
        "Usar somente a gordura prevista; manteiga/alho/ervas da fonte só entram se autorizados."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-2D6228D97C": {
      "id": "PM-SRC-2D6228D97C",
      "source_id": "SRC-2D6228D97C",
      "source_title": "Homemade beef burgers",
      "source_url": "https://www.bbcgoodfood.com/recipes/beef-burgers-learn-make",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela",
        "chapa/grelha",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Moldar discos uniformes com a carne e temperos autorizados, manipulando o mínimo necessário.",
        "Resfriar os discos por cerca de 30 min se houver tempo para firmar.",
        "Grelhar/chapear em calor médio-alto sem pressionar o hambúrguer.",
        "Virar uma vez ou conforme necessário; retirar no ponto definido para a carne moída e deixar repousar brevemente."
      ],
      "source_time_reference": "fonte: ~5 min por lado para hambúrguer de ~3 cm",
      "source_temperature_reference": "grelha/chapa média-quente",
      "source_endpoint_reference": "crosta dourada e interior cozido",
      "adaptation_guardrails": [
        "A fonte usa cebola/ovo; omitir se não estiverem na porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-2E05C79E02": {
      "id": "PM-SRC-2E05C79E02",
      "source_id": "SRC-2E05C79E02",
      "source_title": "How to make cauliflower rice",
      "source_url": "https://www.bbcgoodfood.com/videos/techniques/how-make-cauliflower-rice-video",
      "extraction_status": "source_family_or_existing_overview",
      "equipment": [
        "processador ou ralador",
        "frigideira larga"
      ],
      "source_method_paraphrase": [
        "Processar/ralar a couve-flor em pulsos até obter grãos do tamanho de arroz, evitando virar pasta.",
        "Cozinhar rapidamente em frigideira larga com a gordura/temperos autorizados.",
        "Mexer somente até perder o sabor cru e evaporar umidade; não adicionar água."
      ],
      "source_time_reference": "técnica rápida; poucos minutos na frigideira",
      "source_temperature_reference": "fogo médio-alto",
      "source_endpoint_reference": "grãos separados e secos, não pastosos",
      "adaptation_guardrails": [
        "Cominho/coentro entram conforme ficha."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-2F02D19B19": {
      "id": "PM-SRC-2F02D19B19",
      "source_id": "SRC-2F02D19B19",
      "source_title": "Lemon yogurt chicken — 4.5/5 (34)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/lemon-chicken-recipes",
      "extraction_status": "existing_source_overview_only",
      "equipment": [],
      "source_method_paraphrase": [],
      "source_time_reference": null,
      "source_temperature_reference": null,
      "source_endpoint_reference": null,
      "adaptation_guardrails": [],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-2F1142BB4F": {
      "id": "PM-SRC-2F1142BB4F",
      "source_id": "SRC-2F1142BB4F",
      "source_title": "Moroccan kofte with spicy tomato sauce",
      "source_url": "https://www.bbcgoodfood.com/recipes/moroccan-kofte-spicy-tomato-sauce",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela",
        "espetos",
        "grill/churrasqueira",
        "panela para molho"
      ],
      "source_method_paraphrase": [
        "Misturar a carne crua moída com cebola/ervas/especiarias autorizadas e moldar cilindros uniformes em espetos.",
        "Para o molho, perfumar o alho e reduzir tomate/harissa autorizados até espessar; a fonte reduz por 15–20 min.",
        "Grelhar as koftas, virando para dourar por igual; a fonte usa 6–8 min no total.",
        "Montar com o molho autorizado e, quando previsto, iogurte zero lactose. A carne deve ser pesada crua na gramagem desta página antes da cocção; não é necessário repesar para porcionar."
      ],
      "source_time_reference": "fonte: molho 15–20 min; koftas 6–8 min no grill",
      "source_temperature_reference": "grill quente; molho em fervura suave",
      "source_endpoint_reference": "koftas bem douradas e cozidas no centro; molho espesso",
      "adaptation_guardrails": [
        "Iogurte, pinoli, açúcar e acompanhamentos só entram se autorizados."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-2F77203D66": {
      "id": "PM-SRC-2F77203D66",
      "source_id": "SRC-2F77203D66",
      "source_title": "Lamb koftas",
      "source_url": "https://www.bbcgoodfood.com/recipes/lamb-koftas",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela",
        "espetos metálicos",
        "chapa/griddle ou churrasqueira",
        "pinça"
      ],
      "source_method_paraphrase": [
        "Misturar a carne crua moída com cominho, coentro, alho, hortelã e demais temperos autorizados até distribuir; evitar compactar excessivamente.",
        "Dividir e moldar em ovais/cilindros, espetar e pincelar somente a gordura autorizada.",
        "Aquecer bem a chapa e cozinhar sem tentar virar antes de a superfície selar.",
        "A fonte usa cerca de 3–4 min por lado; ajustar à espessura da adaptação. A gramagem desta página já deve ser pesada antes da cocção; não é necessário repesar para porcionar."
      ],
      "source_time_reference": "fonte: ~3–4 min por lado",
      "source_temperature_reference": "chapa/churrasqueira bem quente",
      "source_endpoint_reference": "superfície selada/dourada e centro cozido",
      "adaptation_guardrails": [
        "A fonte usa cordeiro; nas versões bovinas, preservar técnica/formato, mas usar apenas a carne prevista na porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-2FEC385533": {
      "id": "PM-SRC-2FEC385533",
      "source_id": "SRC-2FEC385533",
      "source_title": "Cheese omelette",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/omelette-recipes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira antiaderente",
        "batedor ou garfo",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Bater os ovos e temperar.",
        "Aquecer a frigideira em fogo médio-baixo com a gordura prevista na porção.",
        "Adicionar os ovos; à medida que firmarem, puxar as partes cozidas para o centro e inclinar a frigideira para o ovo ainda líquido ocupar os espaços.",
        "Quando estiver quase firme, adicionar o recheio autorizado, dobrar e retirar antes de ressecar."
      ],
      "source_time_reference": "cerca de 5 min de cocção na receita básica",
      "source_temperature_reference": "fogo médio-baixo",
      "source_endpoint_reference": "omelete firme por fora e ainda macia/úmida no interior",
      "adaptation_guardrails": [
        "Usar apenas o queijo e demais recheios presentes na porção adaptada."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-306EB737D8": {
      "id": "PM-SRC-306EB737D8",
      "source_id": "SRC-306EB737D8",
      "source_title": "Omelette pancakes with tomato & pepper sauce",
      "source_url": "https://www.bbcgoodfood.com/recipes/omelette-pancakes-tomato-pepper-sauce",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira grande para molho",
        "frigideira pequena antiaderente",
        "batedor",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Amaciar pimentão/alho autorizados e reduzir o molho de tomate; a fonte cozinha vegetais ~5 min e depois reduz o molho 10–15 min.",
        "Bater o ovo com os temperos autorizados e pequena quantidade de água quando desejado.",
        "Cozinhar cada lâmina de omelete em frigideira pequena com película mínima de gordura por cerca de 1–2 min, até firme.",
        "Enrolar e servir com apenas o molho autorizado, evitando encharcar."
      ],
      "source_time_reference": "fonte: molho 5 min + 10–15 min; omelete fina 1–2 min cada",
      "source_temperature_reference": "fogo médio; fervura suave no molho",
      "source_endpoint_reference": "molho espesso e omelete fina, firme e flexível",
      "adaptation_guardrails": [
        "Pimentão, tomate e demais componentes só entram se autorizados pela porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-31F2558DC1": {
      "id": "PM-SRC-31F2558DC1",
      "source_id": "SRC-31F2558DC1",
      "source_title": "DIY kofta burgers — 4.6/5 (53)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/kofta-recipes",
      "extraction_status": "source_family_or_existing_overview",
      "equipment": [
        "tigela",
        "grelha/chapa ou air fryer",
        "espetos opcionais"
      ],
      "source_method_paraphrase": [
        "Misturar a carne moída com as especiarias/ervas autorizadas até distribuir uniformemente, sem compactar em excesso.",
        "Moldar em cilindros, koftas, discos ou espetos conforme o nome da receita.",
        "Grelhar/chapear ou usar air fryer, virando quando necessário para dourar todos os lados.",
        "Servir molho de iogurte/hortelã separado quando previsto; em versões ao tomate, terminar as koftas no molho reduzido."
      ],
      "source_time_reference": "fontes de kofta: normalmente ~20–50 min total conforme receita/formato",
      "source_temperature_reference": "grelha/chapa quente; molho em fervura suave",
      "source_endpoint_reference": "superfície bem dourada; centro cozido; molho reduzido quando aplicável",
      "adaptation_guardrails": [
        "As fontes frequentemente usam cordeiro/pão; aqui manter a carne e ingredientes da nossa porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-39E3863860": {
      "id": "PM-SRC-39E3863860",
      "source_id": "SRC-39E3863860",
      "source_title": "Feta & semi-dried tomato omelette — 4.7/5 (43)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/omelette-recipes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira antiaderente",
        "garfo ou batedor",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Aquecer uma fina camada da gordura prevista e adicionar os ovos batidos.",
        "Mover o ovo com o garfo/espátula enquanto firma, preservando centro ligeiramente úmido.",
        "Adicionar tomate e o queijo permitido pela adaptação, dobrar e cozinhar brevemente para terminar de firmar."
      ],
      "source_time_reference": "aprox. 5 min de cocção",
      "source_temperature_reference": "fogo médio",
      "source_endpoint_reference": "dobrada, macia e com centro recém-firme",
      "adaptation_guardrails": [
        "Na adaptação, usar somente o queijo e tomate previstos na porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-3E8E96B92A": {
      "id": "PM-SRC-3E8E96B92A",
      "source_id": "SRC-3E8E96B92A",
      "source_title": "Egg custard",
      "source_url": "https://www.bbcgoodfood.com/recipes/egg-custard",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "ramequim/forma",
        "assadeira funda para banho-maria",
        "forno"
      ],
      "source_method_paraphrase": [
        "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado.",
        "Transferir para ramequim/forma.",
        "Colocar em banho-maria com água quente subindo parcialmente pelas laterais.",
        "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
      ],
      "source_time_reference": "fonte: 45–50 min",
      "source_temperature_reference": "150°C / 130°C ventilado",
      "source_endpoint_reference": "recém-firme com leve tremor central",
      "adaptation_guardrails": [
        "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-415FA9B3F1": {
      "id": "PM-SRC-415FA9B3F1",
      "source_id": "SRC-415FA9B3F1",
      "source_title": "Microwave mug omelette",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/omelette-recipes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "caneca grande própria para micro-ondas",
        "garfo"
      ],
      "source_method_paraphrase": [
        "Untar/coating da caneca apenas com a gordura prevista na porção.",
        "Bater ovos e misturar recheios autorizados.",
        "Cozinhar em pulsos curtos, mexendo entre os primeiros pulsos para uniformizar.",
        "Descansar 1 min; se necessário, terminar em potência reduzida por um pulso curto."
      ],
      "source_time_reference": "fonte: pulsos de 20 s, descanso de 1 min",
      "source_temperature_reference": "micro-ondas; finalização opcional a 50% de potência",
      "source_endpoint_reference": "firme sem ficar borrachuda",
      "adaptation_guardrails": [
        "A potência varia; usar os pulsos como referência, não como garantia."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-419B2CE79F": {
      "id": "PM-SRC-419B2CE79F",
      "source_id": "SRC-419B2CE79F",
      "source_title": "Indian beef keema with carrots & potatoes",
      "source_url": "https://www.bbcgoodfood.com/recipes/indian-beef-keema-carrots-potatoes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "panela larga",
        "colher de pau/espátula"
      ],
      "source_method_paraphrase": [
        "Aquecer parte da gordura prevista e dourar a carne moída em fogo alto, quebrando os grumos; retirar e reservar quando bem colorida.",
        "Na mesma panela, amaciar cebola, alho e gengibre autorizados até ficarem macios.",
        "Adicionar curry/especiarias e cozinhar brevemente para liberar aroma.",
        "Juntar tomate/líquido apenas nas quantidades autorizadas e retornar a carne; cozinhar em fogo médio até o molho curto aderir à carne.",
        "Finalizar com ervas ou iogurte somente quando previstos na versão adaptada."
      ],
      "source_time_reference": "fonte: dourar a carne; aromáticos ~8 min; depois ~20 min em fogo médio com os componentes do curry",
      "source_temperature_reference": "fogo alto para dourar; médio para terminar",
      "source_endpoint_reference": "carne bem dourada, grumos soltos e molho reduzido/aderente",
      "adaptation_guardrails": [
        "Batata, cenoura, arroz e chutney da fonte são omitidos; água/caldo é reduzido na adaptação para manter o curry curto."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-430616225D": {
      "id": "PM-SRC-430616225D",
      "source_id": "SRC-430616225D",
      "source_title": "Sesame & ginger green beans",
      "source_url": "https://www.bbcgoodfood.com/recipes/sesame-ginger-green-beans",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "panela",
        "wok/frigideira"
      ],
      "source_method_paraphrase": [
        "Ferver a vagem brevemente e escorrer muito bem.",
        "Aquecer a gordura, perfumar gengibre/alho por cerca de 1 min.",
        "Adicionar a vagem e saltear; finalizar com gergelim/temperos autorizados por poucos segundos."
      ],
      "source_time_reference": "fonte: vagem ~3 min; aromáticos ~1 min; finalização ~30 s",
      "source_temperature_reference": "frigideira quente",
      "source_endpoint_reference": "vagem firme e aromática",
      "adaptation_guardrails": [
        "Se óleo de gergelim não estiver contabilizado, usar o azeite previsto e gergelim/condimentos apenas conforme ficha."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-48B8FB322E": {
      "id": "PM-SRC-48B8FB322E",
      "source_id": "SRC-48B8FB322E",
      "source_title": "Chicken souvlaki — 4.8/5 (230)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/barbecue-recipes",
      "extraction_status": "source_family_or_existing_overview",
      "equipment": [
        "tigela",
        "espetos ou frigideira/grelha"
      ],
      "source_method_paraphrase": [
        "Cortar o frango em pedaços uniformes e envolver com limão, alho, orégano/ervas e gordura autorizada.",
        "Marinar quando a ficha permitir.",
        "Grelhar em espetos ou em frigideira bem quente em camada única, virando para dourar todos os lados.",
        "Servir o molho de iogurte separadamente quando previsto."
      ],
      "source_time_reference": "fonte de família de barbecue/souvlaki; tempo varia com o corte",
      "source_temperature_reference": "grelha/chapa quente",
      "source_endpoint_reference": "cubos/tiras bem dourados e cozidos",
      "adaptation_guardrails": [
        "Não usar pão, beterraba ou acompanhamentos da fonte que não constem na alternativa."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-4B593C7FA1": {
      "id": "PM-SRC-4B593C7FA1",
      "source_id": "SRC-4B593C7FA1",
      "source_title": "Ricotta, tomato & spinach frittata — 4.3/5 (157)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/fritatta-recipes/",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira",
        "forma/recipiente de forno",
        "batedor"
      ],
      "source_method_paraphrase": [
        "Amaciar a cebola; adicionar tomate e cozinhar brevemente; murchar folhas/ervas quando previstas.",
        "Transferir para recipiente untado, distribuir o queijo autorizado e cobrir com ovos batidos.",
        "Assar até firme e levemente dourada."
      ],
      "source_time_reference": "forno 20–25 min na fonte",
      "source_temperature_reference": "200°C / 180°C ventilado",
      "source_endpoint_reference": "centro firme e superfície levemente dourada",
      "adaptation_guardrails": [
        "Ricota pode ser substituída por muçarela zero lactose conforme ficha; não reintroduzir espinafre se não estiver na porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-4D44157866": {
      "id": "PM-SRC-4D44157866",
      "source_id": "SRC-4D44157866",
      "source_title": "Strawberry frozen yogurt — 4.0/5 (50)",
      "source_url": "https://www.bbcgoodfood.com/recipes/frozen-strawberry-yogurt",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "liquidificador/processador",
        "recipiente de freezer"
      ],
      "source_method_paraphrase": [
        "Processar a fruta até purê ou textura desejada.",
        "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo.",
        "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais.",
        "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
      ],
      "source_time_reference": "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes",
      "source_temperature_reference": "freezer",
      "source_endpoint_reference": "cremoso/congelado com cristais pequenos",
      "adaptation_guardrails": [
        "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-4E6E7E712F": {
      "id": "PM-SRC-4E6E7E712F",
      "source_id": "SRC-4E6E7E712F",
      "source_title": "Basic omelette — 4.7/5 (117 avaliações)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/omelette-recipes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira antiaderente",
        "batedor ou garfo",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Bater os ovos e temperar.",
        "Aquecer a frigideira em fogo médio-baixo com a gordura prevista na porção.",
        "Adicionar os ovos; à medida que firmarem, puxar as partes cozidas para o centro e inclinar a frigideira para o ovo ainda líquido ocupar os espaços.",
        "Quando estiver quase firme, adicionar o recheio autorizado, dobrar e retirar antes de ressecar."
      ],
      "source_time_reference": "cerca de 5 min de cocção na receita básica",
      "source_temperature_reference": "fogo médio-baixo",
      "source_endpoint_reference": "omelete firme por fora e ainda macia/úmida no interior",
      "adaptation_guardrails": [
        "Usar apenas o queijo e demais recheios presentes na porção adaptada."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-55FF831328": {
      "id": "PM-SRC-55FF831328",
      "source_id": "SRC-55FF831328",
      "source_title": "Masala omelette muffins",
      "source_url": "https://www.bbcgoodfood.com/recipes/masala-omelette-muffins",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela/jarra",
        "batedor",
        "ramequins/formas",
        "forno"
      ],
      "source_method_paraphrase": [
        "Preparar os vegetais/aromáticos autorizados e remover excesso de água quando necessário.",
        "Bater ovos com especiarias e demais recheios autorizados.",
        "Distribuir nos ramequins/formas, sem adicionar ingredientes ausentes da adaptação.",
        "Assar até crescer e firmar; a fonte usa 220°C/200°C ventilado por 20–25 min."
      ],
      "source_time_reference": "fonte: 20–25 min",
      "source_temperature_reference": "220°C / 200°C ventilado",
      "source_endpoint_reference": "muffins inflados e firmes no centro",
      "adaptation_guardrails": [
        "A fonte contém courgette/abobrinha; ela é proibida nesta adaptação. Feta/ervilhas entram somente se autorizados."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-567AB4BDA3": {
      "id": "PM-SRC-567AB4BDA3",
      "source_id": "SRC-567AB4BDA3",
      "source_title": "Meatball stroganoff",
      "source_url": "https://www.bbcgoodfood.com/recipes/meatball-stroganoff",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela",
        "frigideira larga com tampa",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Temperar a carne crua moída autorizada e moldar almôndegas uniformes, sem compactar excessivamente.",
        "Dourar as almôndegas em todos os lados e reservar.",
        "Amaciar a cebola; adicionar alho e cogumelos e cozinhar até começarem a dourar.",
        "Adicionar os componentes de molho autorizados e cozinhar brevemente para retirar sabor cru; acrescentar o líquido permitido aos poucos.",
        "Retornar as almôndegas, tampar e cozinhar em fervura suave até o centro estar cozido; a fonte usa 15 min.",
        "Incorporar o iogurte/lácteo adaptado fora de fervura forte. A gramagem desta página já deve ser pesada antes da cocção; não é necessário repesar para porcionar."
      ],
      "source_time_reference": "fonte: ~15 min de fervura suave das almôndegas no molho após dourar",
      "source_temperature_reference": "fogo médio para dourar; fervura suave para finalizar",
      "source_endpoint_reference": "almôndegas douradas, cozidas no centro e molho cremoso",
      "adaptation_guardrails": [
        "A farinha, creme azedo e acompanhamentos da fonte não entram automaticamente. Usar apenas os componentes autorizados."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-58CC1ECA0E": {
      "id": "PM-SRC-58CC1ECA0E",
      "source_id": "SRC-58CC1ECA0E",
      "source_title": "Miso steak",
      "source_url": "https://www.bbcgoodfood.com/recipes/miso-steak",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "saco ou recipiente para marinar",
        "frigideira pesada, chapa ou churrasqueira",
        "pinça"
      ],
      "source_method_paraphrase": [
        "Misturar o miso e aromáticos autorizados e cobrir uniformemente o bife.",
        "Marinar refrigerado; a fonte usa no mínimo 1 h e permite até 2 dias.",
        "Antes de selar, retirar o excesso de marinada superficial para reduzir queima.",
        "Aquecer muito bem a chapa/frigideira/churrasqueira e selar dos dois lados. A fonte usa cerca de 3 min por lado para malpassado ao ponto em bife semelhante.",
        "Descansar antes de fatiar contra a fibra."
      ],
      "source_time_reference": "fonte: marinada ≥1 h (até 2 dias); ~3 min por lado para medium-rare; descanso ~1 min",
      "source_temperature_reference": "superfície muito quente",
      "source_endpoint_reference": "crosta bem selada e ponto interno desejado",
      "adaptation_guardrails": [
        "Não usar açúcar, saquê/xerez ou acompanhamentos da fonte se não estiverem autorizados. Tempo de chapa depende da espessura e do corte real."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-5DCE2A5D16": {
      "id": "PM-SRC-5DCE2A5D16",
      "source_id": "SRC-5DCE2A5D16",
      "source_title": "Super-quick fish curry",
      "source_url": "https://www.bbcgoodfood.com/recipes/super-quick-fish-curry",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "panela funda",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Amaciar cebola e alho autorizados em fogo moderado; a fonte usa cerca de 5 min.",
        "Adicionar a pasta/especiarias de curry e cozinhar por 1–2 min para perfumar.",
        "Adicionar tomate e somente o líquido autorizado e levar a fervura suave.",
        "Adicionar a tilápia/peixe em pedaços e cozinhar delicadamente até lascar com facilidade; a fonte usa 4–5 min."
      ],
      "source_time_reference": "fonte: aromáticos ~5 min; curry 1–2 min; peixe 4–5 min",
      "source_temperature_reference": "fogo moderado; fervura suave para o peixe",
      "source_endpoint_reference": "peixe opaco, úmido e lascando facilmente",
      "adaptation_guardrails": [
        "Não reintroduzir arroz/naan ou caldo adicional se não estiverem na porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-5EDCD23E60": {
      "id": "PM-SRC-5EDCD23E60",
      "source_id": "SRC-5EDCD23E60",
      "source_title": "Air fryer omelette — 5.0/5 (7)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/omelette-recipes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "air fryer",
        "recipiente baixo antiaderente resistente ao calor",
        "batedor"
      ],
      "source_method_paraphrase": [
        "Pré-aquecer a air fryer com o recipiente dentro.",
        "Bater ovos e misturar somente os recheios autorizados.",
        "Adicionar a gordura prevista ao recipiente, despejar a mistura e cozinhar até inflar e dourar."
      ],
      "source_time_reference": "8–10 min",
      "source_temperature_reference": "180°C",
      "source_endpoint_reference": "inflada, dourada e recém-firme",
      "adaptation_guardrails": [
        "A quantidade de gordura é a da porção, não a da receita-fonte."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-5F81012DF2": {
      "id": "PM-SRC-5F81012DF2",
      "source_id": "SRC-5F81012DF2",
      "source_title": "Easy chicken curry — 4.5/5 (360)",
      "source_url": "https://www.bbcgoodfood.com/recipes/easy-chicken-curry",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira/panela larga",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Amaciar cebola e aromáticos; adicionar alho/gengibre e cozinhar brevemente.",
        "Adicionar o frango e dourar os cubos.",
        "Adicionar especiarias/pasta e os componentes de molho autorizados; cozinhar em fervura suave até o molho reduzir e aderir.",
        "Quando houver iogurte na adaptação, incorporar no final e evitar fervura forte."
      ],
      "source_time_reference": "fonte: cebola 8–10 min; aromáticos ~1 min; frango ~5 min antes do molho; molho 25–30 min",
      "source_temperature_reference": "médio → fervura suave",
      "source_endpoint_reference": "frango cozido e molho concentrado",
      "adaptation_guardrails": [
        "A versão “curry seco” pode omitir tomate/água/iogurte; nesse caso parar quando especiarias estiverem aderidas ao frango."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-5F8FE8416C": {
      "id": "PM-SRC-5F8FE8416C",
      "source_id": "SRC-5F8FE8416C",
      "source_title": "Slow-cooker beef stew — 4.8/5 (682)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/beef-recipes/",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira",
        "panela de cozimento lento ou panela pesada"
      ],
      "source_method_paraphrase": [
        "Amaciar cebola/aromáticos autorizados e preparar a base do molho.",
        "Dourar a carne em lotes antes do cozimento lento para obter sabor de Maillard.",
        "Transferir para cozimento lento com os líquidos/temperos autorizados e cozinhar até a carne ficar muito macia.",
        "Se o molho estiver ralo, reduzir em panela aberta; a adaptação não usa farinha/amido quando não listado."
      ],
      "source_time_reference": "fonte: 8–10 h em low ou ~4 h em high",
      "source_temperature_reference": "slow cooker low/high; selagem em frigideira quente",
      "source_endpoint_reference": "carne muito macia; molho reduzido e aderente",
      "adaptation_guardrails": [
        "Omitir cenoura/celery/cornflour e outros itens não listados; pode usar pressão/cozimento lento equivalente conforme ficha."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-62670668F4": {
      "id": "PM-SRC-62670668F4",
      "source_id": "SRC-62670668F4",
      "source_title": "Broiled Tilapia Parmesan",
      "source_url": "https://www.allrecipes.com/recipe/50644/broiled-tilapia-parmesan/",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "assadeira rasa",
        "grill/broiler ou air fryer",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Secar/temperar os filés e dispor em camada única.",
        "Pré-cozinhar sob grill forte, virando na metade quando a espessura permitir.",
        "Aplicar uma camada fina da cobertura de parmesão adaptada.",
        "Voltar ao grill/air fryer apenas até dourar a cobertura e o peixe lascar."
      ],
      "source_time_reference": "fonte: ~4 min de grill inicial (virando na metade) + ~2 min após a cobertura",
      "source_temperature_reference": "broiler/grill alto, filé próximo da fonte de calor",
      "source_endpoint_reference": "parmesão dourado; peixe lascando",
      "adaptation_guardrails": [
        "A fonte usa maionese e manteiga; nossa adaptação não deve adicioná-las salvo se explicitamente contabilizadas."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-627B49D664": {
      "id": "PM-SRC-627B49D664",
      "source_id": "SRC-627B49D664",
      "source_title": "Creamy fish curry",
      "source_url": "https://www.bbcgoodfood.com/recipes/creamy-fish-curry",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira/panela com tampa",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Aquecer a pasta/especiarias de curry com pequena quantidade do líquido autorizado e adicionar a cebola; cozinhar suavemente até macia.",
        "Adicionar somente o componente cremoso/líquido permitido e levar a fervura suave para formar molho homogêneo.",
        "Adicionar os vegetais autorizados e posicionar o peixe por cima.",
        "Tampar e cozinhar suavemente até o peixe estar recém-cozido; a fonte usa 10–12 min para pedaços grandes."
      ],
      "source_time_reference": "fonte: peixe coberto em fervura suave 10–12 min",
      "source_temperature_reference": "fogo suave/médio-baixo",
      "source_endpoint_reference": "peixe recém-cozido, opaco e ainda úmido",
      "adaptation_guardrails": [
        "Leite de coco, vagem, arroz e caldo da fonte só entram se autorizados pela porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-63E09E4CC0": {
      "id": "PM-SRC-63E09E4CC0",
      "source_id": "SRC-63E09E4CC0",
      "source_title": "Keto pancakes",
      "source_url": "https://www.bbcgoodfood.com/recipes/keto-pancakes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela",
        "batedor",
        "frigideira antiaderente"
      ],
      "source_method_paraphrase": [
        "Misturar os componentes líquidos previstos; incorporar whey/claras/ingredientes secos e aromáticos da adaptação até homogêneo.",
        "Aquecer frigideira antiaderente em fogo médio-baixo com somente a gordura contabilizada.",
        "Fazer discos pequenos; cozinhar até as bordas firmarem e a base dourar.",
        "Virar e terminar apenas até o centro firmar."
      ],
      "source_time_reference": "fonte: 2–3 min primeiro lado + ~2 min segundo",
      "source_temperature_reference": "médio-baixo",
      "source_endpoint_reference": "bordas firmes, exterior dourado e centro cozido",
      "adaptation_guardrails": [
        "A fonte usa farinha de amêndoa/leite; só usar componentes da nossa massa. O tempo é referência e pode mudar com a composição proteica."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-643FE5F773": {
      "id": "PM-SRC-643FE5F773",
      "source_id": "SRC-643FE5F773",
      "source_title": "Frozen tropical fruit yogurt — 4.7/5 (12)",
      "source_url": "https://www.bbcgoodfood.com/recipes/frozen-tropical-fruit-yogurt",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "processador de alimentos"
      ],
      "source_method_paraphrase": [
        "Colocar no processador o iogurte e as frutas que serão batidas, usando apenas os ingredientes autorizados pela adaptação.",
        "Processar até atingir a textura desejada: homogênea para creme, ou por menos tempo quando a ficha pede pedaços.",
        "Para a versão bowl/gelada, servir imediatamente; se a preparação for congelada, transferir para recipiente próprio e amolecer brevemente antes de servir."
      ],
      "source_time_reference": "fonte: cerca de 15 min de preparo; o método principal é bater e servir/congelar",
      "source_temperature_reference": "preparo frio",
      "source_endpoint_reference": "cremoso; pedaços preservados quando a ficha assim especificar",
      "adaptation_guardrails": [
        "A fonte usa fruta tropical congelada e mel/maple; na adaptação usar apenas morango/mamão, whey e iogurte zero lactose previstos."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-67BF43F16C": {
      "id": "PM-SRC-67BF43F16C",
      "source_id": "SRC-67BF43F16C",
      "source_title": "Spicy cauliflower",
      "source_url": "https://www.bbcgoodfood.com/recipes/spicy-cauliflower",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira/wok com tampa",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Aquecer a gordura e perfumar gengibre/especiarias por poucos segundos.",
        "Adicionar a couve-flor, reduzir o calor e tampar.",
        "Cozinhar mexendo ocasionalmente até amaciar e as especiarias aderirem.",
        "Finalizar com ervas autorizadas."
      ],
      "source_time_reference": "fonte: ~10 min tampada após as especiarias",
      "source_temperature_reference": "início quente; depois calor reduzido",
      "source_endpoint_reference": "floretes macios, ainda estruturados, cobertos de especiarias",
      "adaptation_guardrails": [
        "Usar apenas especiarias autorizadas."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-73EC562C77": {
      "id": "PM-SRC-73EC562C77",
      "source_id": "SRC-73EC562C77",
      "source_title": "Crustless quiche",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/fritatta-recipes/",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "forma/ramequim",
        "frigideira",
        "batedor",
        "forno"
      ],
      "source_method_paraphrase": [
        "Pré-cozinhar recheios úmidos para retirar excesso de água.",
        "Bater ovos com os lácteos/queijo que realmente constem na adaptação e temperar.",
        "Combinar recheio e ovos, colocar na forma e finalizar com o queijo autorizado.",
        "Assar até dourar, mantendo apenas leve tremor central antes do descanso."
      ],
      "source_time_reference": "25–30 min de forno após o pré-preparo",
      "source_temperature_reference": "180°C / 160°C ventilado",
      "source_endpoint_reference": "dourada com leve tremor central que termina de firmar no descanso",
      "adaptation_guardrails": [
        "A fonte usa creme/pancetta; omitir quando não constarem na porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-76B58D0101": {
      "id": "PM-SRC-76B58D0101",
      "source_id": "SRC-76B58D0101",
      "source_title": "Cauliflower purée",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/cauliflower-recipes",
      "extraction_status": "source_family_or_existing_overview",
      "equipment": [
        "panela ou vaporizador",
        "processador/liquidificador"
      ],
      "source_method_paraphrase": [
        "Cozinhar a couve-flor até ficar completamente macia.",
        "Escorrer e deixar o vapor sair para evitar purê aguado.",
        "Processar até liso com somente os componentes cremosos/gordura autorizados.",
        "Ajustar temperos e manter aquecido sem ferver vigorosamente."
      ],
      "source_time_reference": "fonte de purê; tempo depende do tamanho dos floretes",
      "source_temperature_reference": "cozimento até maciez; processar quente",
      "source_endpoint_reference": "purê liso, espesso e sem água livre",
      "adaptation_guardrails": [
        "Usar iogurte zero lactose apenas quando constar; sem farinha."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-7A4C9CE916": {
      "id": "PM-SRC-7A4C9CE916",
      "source_id": "SRC-7A4C9CE916",
      "source_title": "Ham, mushroom & spinach frittata",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/fritatta-recipes/",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira antiaderente apta para grill",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Dourar os cogumelos para remover umidade.",
        "Adicionar a proteína/folhas autorizadas e aquecer brevemente.",
        "Adicionar ovos batidos, cozinhar em fogo baixo até quase firmes e finalizar sob grill com queijo quando previsto."
      ],
      "source_time_reference": "fonte: cogumelos ~2 min, recheio ~1 min, ovos ~3 min, grill ~2 min",
      "source_temperature_reference": "fogo alto para cogumelos; baixo para ovos; grill alto",
      "source_endpoint_reference": "base firme e topo recém-dourado",
      "adaptation_guardrails": [
        "Frango pode substituir presunto; espinafre só se estiver na porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-7A6D11BAC7": {
      "id": "PM-SRC-7A6D11BAC7",
      "source_id": "SRC-7A6D11BAC7",
      "source_title": "Instant frozen berry yogurt",
      "source_url": "https://www.bbcgoodfood.com/recipes/instant-frozen-berry-yogurt",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "processador potente"
      ],
      "source_method_paraphrase": [
        "Usar a fruta congelada e o iogurte zero lactose bem frio.",
        "Processar junto com whey/ingredientes autorizados somente até formar textura lisa de sorvete.",
        "Consumir imediatamente para preservar a textura."
      ],
      "source_time_reference": "fonte: cerca de 20 s de processamento",
      "source_temperature_reference": "sem cocção; ingredientes congelados/frios",
      "source_endpoint_reference": "textura lisa de sorvete soft, sem derreter",
      "adaptation_guardrails": [
        "Mel/agave não entra salvo se listado."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-7C7CF77559": {
      "id": "PM-SRC-7C7CF77559",
      "source_id": "SRC-7C7CF77559",
      "source_title": "High-protein low-carb egg bites",
      "source_url": "https://www.eatingwell.com/al-roker-high-protein-egg-bite-recipe-11928644",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "liquidificador",
        "forma de muffin/silicone",
        "forno"
      ],
      "source_method_paraphrase": [
        "Bater ovos/claras com o queijo e temperos efetivamente previstos até a mistura ficar homogênea.",
        "Distribuir qualquer recheio já cozido autorizado nas cavidades e completar com a mistura de ovos.",
        "Assar até os bites inflarem e o centro firmar; deixar repousar brevemente antes de desenformar."
      ],
      "source_time_reference": "fonte: cerca de 25 min",
      "source_temperature_reference": "350°F / ~177°C",
      "source_endpoint_reference": "inflados e firmes no centro",
      "adaptation_guardrails": [
        "A fonte usa cottage cheese, cheddar e sausage; substituir/omitir conforme a porção. Frango, quando presente na nossa versão, entra já cozido como recheio."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-7F8EF76EB6": {
      "id": "PM-SRC-7F8EF76EB6",
      "source_id": "SRC-7F8EF76EB6",
      "source_title": "Fish mappas",
      "source_url": "https://www.bbcgoodfood.com/recipes/fish-mappas",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "panela larga",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Cozinhar a cebola em fogo médio até amolecer e começar a dourar; a fonte usa 5–10 min.",
        "Adicionar alho e tomate autorizados e cozinhar brevemente; na fonte, 2 min.",
        "Adicionar pasta/especiarias de curry e cozinhar mais cerca de 2 min para perfumar.",
        "Adicionar somente o líquido cremoso permitido e levar à fervura.",
        "Adicionar o peixe e reduzir para fervura suave até recém-cozido; a fonte usa 5–8 min."
      ],
      "source_time_reference": "fonte: cebola 5–10 min; alho/tomate 2 min; curry 2 min; peixe 5–8 min",
      "source_temperature_reference": "fogo médio; fervura suave após adicionar o peixe",
      "source_endpoint_reference": "peixe macio, opaco e recém-cozido",
      "adaptation_guardrails": [
        "Leite de coco, arroz e outros acompanhamentos da fonte só entram se autorizados."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-86C8B417AE": {
      "id": "PM-SRC-86C8B417AE",
      "source_id": "SRC-86C8B417AE",
      "source_title": "Pan-Seared Tilapia",
      "source_url": "https://www.allrecipes.com/recipe/201934/pan-seared-tilapia/",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira antiaderente ou pesada",
        "espátula de peixe",
        "papel-toalha"
      ],
      "source_method_paraphrase": [
        "Secar muito bem os filés e temperar os dois lados.",
        "Aquecer o azeite previsto em fogo médio-alto.",
        "Colocar os filés sem sobrepor e selar até dourar; virar com cuidado e terminar o segundo lado.",
        "Finalizar com limão/ervas autorizados e retirar assim que o peixe lascar facilmente."
      ],
      "source_time_reference": "fonte: cerca de 4 min por lado",
      "source_temperature_reference": "médio-alto",
      "source_endpoint_reference": "opaco, úmido e lascando facilmente",
      "adaptation_guardrails": [
        "A fonte usa farinha e manteiga; omitir quando não constarem. Não é necessário lavar o peixe; apenas secar a superfície."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-88BF8D7441": {
      "id": "PM-SRC-88BF8D7441",
      "source_id": "SRC-88BF8D7441",
      "source_title": "Easy protein pancakes",
      "source_url": "https://www.bbcgoodfood.com/recipes/easy-protein-pancakes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "liquidificador",
        "frigideira antiaderente",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Bater os ingredientes da massa até ficar lisa; se houver fruta, incorporar na quantidade prevista.",
        "Aquecer uma película da gordura contabilizada.",
        "Formar discos com espaço entre eles; virar quando surgirem bolhas/firmar a superfície e a base estiver dourada.",
        "Cozinhar o segundo lado até firmar."
      ],
      "source_time_reference": "fonte: 1–2 min primeiro lado + ~1 min segundo",
      "source_temperature_reference": "frigideira quente/moderada",
      "source_endpoint_reference": "douradas e cozidas no centro",
      "adaptation_guardrails": [
        "Aveia/leite/coberturas da fonte só entram se constarem na versão adaptada."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-89DE384F5F": {
      "id": "PM-SRC-89DE384F5F",
      "source_id": "SRC-89DE384F5F",
      "source_title": "Stir-fried garlic green beans",
      "source_url": "https://www.bbcgoodfood.com/recipes/stir-fried-garlic-green-beans",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "wok ou frigideira larga",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Aquecer a gordura contabilizada no wok/frigideira.",
        "Saltear a vagem em fogo alto por cerca de 5 min, até começar a dourar e continuar firme.",
        "Adicionar o alho e continuar apenas até o alho começar a dourar.",
        "Adicionar o molho/tempero autorizado no final e servir."
      ],
      "source_time_reference": "fonte: vagem ~5 min antes do alho",
      "source_temperature_reference": "fogo alto",
      "source_endpoint_reference": "vagem al dente com pontos dourados; alho dourado sem queimar",
      "adaptation_guardrails": [
        "Molho de ostra/soja só entra se estiver autorizado; não adicionar óleo além da porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-8AB2C3072E": {
      "id": "PM-SRC-8AB2C3072E",
      "source_id": "SRC-8AB2C3072E",
      "source_title": "Beef stroganoff",
      "source_url": "https://www.bbcgoodfood.com/recipes/beef-stroganoff",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira larga",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Amaciar cebola e alho; dourar cogumelos separadamente para perderem água.",
        "Secar/temperar a carne e selar rapidamente em frigideira quente sem lotar.",
        "Reunir os componentes e reduzir o molho curto com mostarda/caldo/tomate apenas quando previstos.",
        "Retirar do calor forte e incorporar o iogurte zero lactose da adaptação para manter cremosidade sem talhar."
      ],
      "source_time_reference": "fonte: cebola ~15 min; alho 2–3 min; cogumelos ~5 min; carne 3–4 min; molho ~5 min",
      "source_temperature_reference": "frigideira quente para selar; calor médio/baixo no molho",
      "source_endpoint_reference": "carne dourada; cogumelos sem excesso de líquido; molho cremoso e curto",
      "adaptation_guardrails": [
        "A fonte usa farinha/crème fraîche; omitir farinha e trocar o lácteo conforme a adaptação."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-8CFAC315C0": {
      "id": "PM-SRC-8CFAC315C0",
      "source_id": "SRC-8CFAC315C0",
      "source_title": "Strawberry & banana almond smoothie — 4.6/5 (18)",
      "source_url": "https://www.bbcgoodfood.com/recipes/strawberry-banana-almond-smoothie",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "liquidificador"
      ],
      "source_method_paraphrase": [
        "Adicionar fruta, iogurte/whey e demais ingredientes autorizados ao liquidificador.",
        "Bater até ficar completamente liso.",
        "Servir imediatamente bem frio."
      ],
      "source_time_reference": "processar apenas até liso",
      "source_temperature_reference": "sem cocção; frio",
      "source_endpoint_reference": "bebida homogênea sem pedaços grandes",
      "adaptation_guardrails": [
        "Leite/amêndoa da fonte entram apenas nas quantidades autorizadas."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-8E365AEB6D": {
      "id": "PM-SRC-8E365AEB6D",
      "source_id": "SRC-8E365AEB6D",
      "source_title": "Moroccan kofte with spicy tomato sauce",
      "source_url": "https://www.bbcgoodfood.com/recipes/moroccan-kofte-spicy-tomato-sauce",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela",
        "espetos",
        "grill/churrasqueira",
        "panela para molho"
      ],
      "source_method_paraphrase": [
        "Misturar a carne crua moída com cebola/ervas/especiarias autorizadas e moldar cilindros uniformes em espetos.",
        "Reduzir o molho de tomate/harissa autorizado por 15–20 min ou até espesso.",
        "Grelhar as koftas por cerca de 6–8 min no total, virando, até douradas e cozidas no centro.",
        "porcionar pelo peso cru indicado antes da cocção e aplicar apenas os molhos previstos na alternativa."
      ],
      "source_time_reference": "fonte: molho 15–20 min; koftas 6–8 min",
      "source_temperature_reference": "grill quente; molho em fervura suave",
      "source_endpoint_reference": "koftas douradas e cozidas no centro",
      "adaptation_guardrails": [
        "Não reintroduzir iogurte, pinoli, açúcar ou acompanhamentos quando não autorizados."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-94F9CB1526": {
      "id": "PM-SRC-94F9CB1526",
      "source_id": "SRC-94F9CB1526",
      "source_title": "Green beans with shallots, garlic & toasted almonds",
      "source_url": "https://www.bbcgoodfood.com/recipes/green-beans-shallots-garlic-toasted-almonds",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "panela",
        "frigideira"
      ],
      "source_method_paraphrase": [
        "Cozinhar a vagem até al dente, escorrer e secar.",
        "Amaciar cebola/shallot e alho lentamente na gordura prevista sem deixar queimar.",
        "Adicionar a vagem apenas para aquecer e envolver.",
        "Finalizar com limão e amêndoas tostadas; para marmita, manter as amêndoas separadas até servir."
      ],
      "source_time_reference": "fonte: aromáticos ~8 min; vagem cozida previamente",
      "source_temperature_reference": "calor suave para aromáticos",
      "source_endpoint_reference": "vagem firme; amêndoas crocantes",
      "adaptation_guardrails": [
        "Quantidade de amêndoa e azeite deve seguir a porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-98F3FC1410": {
      "id": "PM-SRC-98F3FC1410",
      "source_id": "SRC-98F3FC1410",
      "source_title": "Cauliflower purée — 5.0/5 (2)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/cauliflower-recipes",
      "extraction_status": "source_family_or_existing_overview",
      "equipment": [
        "panela ou vaporizador",
        "processador/liquidificador"
      ],
      "source_method_paraphrase": [
        "Cozinhar a couve-flor até ficar completamente macia.",
        "Escorrer e deixar o vapor sair para evitar purê aguado.",
        "Processar até liso com somente os componentes cremosos/gordura autorizados.",
        "Ajustar temperos e manter aquecido sem ferver vigorosamente."
      ],
      "source_time_reference": "fonte de purê; tempo depende do tamanho dos floretes",
      "source_temperature_reference": "cozimento até maciez; processar quente",
      "source_endpoint_reference": "purê liso, espesso e sem água livre",
      "adaptation_guardrails": [
        "Usar iogurte zero lactose apenas quando constar; sem farinha."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-9E9B51B6F8": {
      "id": "PM-SRC-9E9B51B6F8",
      "source_id": "SRC-9E9B51B6F8",
      "source_title": "Basic omelette recipe",
      "source_url": "https://www.bbcgoodfood.com/recipes/basic-omelette",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira antiaderente",
        "batedor ou garfo",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Bater os ovos e temperar.",
        "Aquecer a frigideira em fogo médio-baixo com a gordura prevista na porção.",
        "Adicionar os ovos; à medida que firmarem, puxar as partes cozidas para o centro e inclinar a frigideira para o ovo ainda líquido ocupar os espaços.",
        "Quando estiver quase firme, adicionar o recheio autorizado, dobrar e retirar antes de ressecar."
      ],
      "source_time_reference": "cerca de 5 min de cocção na receita básica",
      "source_temperature_reference": "fogo médio-baixo",
      "source_endpoint_reference": "omelete firme por fora e ainda macia/úmida no interior",
      "adaptation_guardrails": [
        "Usar apenas o queijo e demais recheios presentes na porção adaptada."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-9FAF756059": {
      "id": "PM-SRC-9FAF756059",
      "source_id": "SRC-9FAF756059",
      "source_title": "Roast pumpkin with cream, thyme & Parmesan",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/pumpkin-soup-recipes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "assadeira",
        "forno"
      ],
      "source_method_paraphrase": [
        "Cortar a abóbora no formato da adaptação e temperar com tomilho/alho e azeite autorizados.",
        "Assar até ficar macia e começar a dourar.",
        "Adicionar a camada fina de parmesão no final e aumentar o calor/grill somente para dourar."
      ],
      "source_time_reference": "fonte inteira: 1½ h em forno baixo + ~15 min em forno mais alto; cubos exigem bem menos",
      "source_temperature_reference": "fonte: 150°C/130°C ventilado, final 200°C/180°C",
      "source_endpoint_reference": "abóbora macia e bordas/queijo dourados",
      "adaptation_guardrails": [
        "A fonte usa creme/leite dentro de abóbora inteira; não reintroduzir. Para cubos, usar endpoint e não o tempo de 1½ h."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-A07C37A0EF": {
      "id": "PM-SRC-A07C37A0EF",
      "source_id": "SRC-A07C37A0EF",
      "source_title": "Air fryer omelette",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/omelette-recipes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "air fryer",
        "recipiente baixo antiaderente resistente ao calor",
        "batedor"
      ],
      "source_method_paraphrase": [
        "Pré-aquecer a air fryer com o recipiente dentro.",
        "Bater ovos e misturar somente os recheios autorizados.",
        "Adicionar a gordura prevista ao recipiente, despejar a mistura e cozinhar até inflar e dourar."
      ],
      "source_time_reference": "8–10 min",
      "source_temperature_reference": "180°C",
      "source_endpoint_reference": "inflada, dourada e recém-firme",
      "adaptation_guardrails": [
        "A quantidade de gordura é a da porção, não a da receita-fonte."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-A119C27396": {
      "id": "PM-SRC-A119C27396",
      "source_id": "SRC-A119C27396",
      "source_title": "Keto doughnuts",
      "source_url": "https://www.bbcgoodfood.com/recipes/keto-donuts",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigelas",
        "batedor/espátula",
        "forma de doughnut",
        "forno"
      ],
      "source_method_paraphrase": [
        "Misturar separadamente secos e líquidos autorizados e então combinar apenas até homogêneo.",
        "Distribuir nos moldes sem preencher completamente; a fonte usa cerca de 3/4 da altura.",
        "Assar inicialmente em forno mais quente para firmar a estrutura; a fonte usa 200°C/180°C ventilado por 12 min.",
        "Reduzir o forno e terminar a cocção; a fonte usa 180°C/160°C ventilado por mais 5–10 min.",
        "Esfriar antes de desenformar para evitar quebra."
      ],
      "source_time_reference": "fonte: 12 min + 5–10 min",
      "source_temperature_reference": "200°C/180°C ventilado, depois 180°C/160°C ventilado",
      "source_endpoint_reference": "estrutura firme, assada e estável para desenformar após esfriar",
      "adaptation_guardrails": [
        "Não reintroduzir farinhas, adoçantes ou coberturas da fonte que não estejam na adaptação. A massa adaptada pode exigir tempo menor."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-A280B37386": {
      "id": "PM-SRC-A280B37386",
      "source_id": "SRC-A280B37386",
      "source_title": "Herb omelette with fried tomatoes",
      "source_url": "https://www.bbcgoodfood.com/recipes/herb-omelette-fried-tomatoes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira pequena antiaderente",
        "tigela",
        "colher de pau/espátula"
      ],
      "source_method_paraphrase": [
        "Se tomate estiver autorizado, dourá-lo com o lado cortado para baixo até começar a amolecer e ganhar cor; reservar.",
        "Bater os ovos com as ervas e pimenta autorizadas.",
        "Adicionar os ovos à frigideira e mover delicadamente a parte que firma no fundo para permitir que ovo ainda líquido ocupe o espaço.",
        "Parar de mexer quando estiver quase cozido e deixar firmar em formato de omelete."
      ],
      "source_time_reference": "fonte: receita cozinha em ~5 min",
      "source_temperature_reference": "fogo médio",
      "source_endpoint_reference": "omelete recém-firme e macia",
      "adaptation_guardrails": [
        "Tomate entra somente quando constar da adaptação."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-A3A876CA09": {
      "id": "PM-SRC-A3A876CA09",
      "source_id": "SRC-A3A876CA09",
      "source_title": "Spaghetti bolognese — 4.8/5 (1207)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/beef-mince-recipes",
      "extraction_status": "source_family_or_existing_overview",
      "equipment": [
        "panela pesada",
        "colher"
      ],
      "source_method_paraphrase": [
        "Dourar a carne moída e amaciar os aromáticos previstos.",
        "Adicionar tomate e temperos autorizados, raspar o fundo da panela e levar a fervura suave.",
        "Cozinhar lentamente até reduzir e desenvolver sabor; servir sem massa quando a ficha disser “sem massa”."
      ],
      "source_time_reference": "receita-fonte de bolonhesa longa (~2 h total)",
      "source_temperature_reference": "fogo baixo após dourar",
      "source_endpoint_reference": "molho espesso e carne macia",
      "adaptation_guardrails": [
        "Massa, vinho e demais ingredientes da fonte são omitidos se não constarem na porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-A3FD77E7A4": {
      "id": "PM-SRC-A3FD77E7A4",
      "source_id": "SRC-A3FD77E7A4",
      "source_title": "Masala frittata with avocado salsa — 4.7/5 (70)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/fritatta-recipes/",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira antiaderente apta para grill",
        "batedor",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Dourar a cebola lentamente e adicionar a pasta/especiarias masala por cerca de 1 min para liberar aroma.",
        "Adicionar tomate e pimenta autorizados e cozinhar até o tomate concentrar.",
        "Adicionar ovos batidos e ervas; cozinhar em fogo baixo até quase firmes.",
        "Finalizar sob grill alto até firmar e dourar levemente; servir a salsa/abacate à parte quando constar na porção."
      ],
      "source_time_reference": "cebola ~10 min; ovos 8–10 min; grill 3–5 min",
      "source_temperature_reference": "fogo médio/baixo; grill alto",
      "source_endpoint_reference": "frittata quase firme antes do grill e dourada no final",
      "adaptation_guardrails": [
        "Salsa/abacate só quando presentes na porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-A400F927EE": {
      "id": "PM-SRC-A400F927EE",
      "source_id": "SRC-A400F927EE",
      "source_title": "Easy chicken curry",
      "source_url": "https://www.bbcgoodfood.com/recipes/easy-chicken-curry",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira/panela larga",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Amaciar cebola e aromáticos; adicionar alho/gengibre e cozinhar brevemente.",
        "Adicionar o frango e dourar os cubos.",
        "Adicionar especiarias/pasta e os componentes de molho autorizados; cozinhar em fervura suave até o molho reduzir e aderir.",
        "Quando houver iogurte na adaptação, incorporar no final e evitar fervura forte."
      ],
      "source_time_reference": "fonte: cebola 8–10 min; aromáticos ~1 min; frango ~5 min antes do molho; molho 25–30 min",
      "source_temperature_reference": "médio → fervura suave",
      "source_endpoint_reference": "frango cozido e molho concentrado",
      "adaptation_guardrails": [
        "A versão “curry seco” pode omitir tomate/água/iogurte; nesse caso parar quando especiarias estiverem aderidas ao frango."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-A67220CDDD": {
      "id": "PM-SRC-A67220CDDD",
      "source_id": "SRC-A67220CDDD",
      "source_title": "Green beans with wholegrain mustard — 4.5/5 (9)",
      "source_url": "https://www.bbcgoodfood.com/recipes/green-beans-wholegrain-mustard",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "panela",
        "frigideira rasa"
      ],
      "source_method_paraphrase": [
        "Cozinhar a vagem em água fervente até ficar verde viva e ainda com leve crocância.",
        "Amaciar o aromático autorizado na gordura prevista; adicionar mostarda e o componente cremoso apenas se houver.",
        "Adicionar vagem escorrida e limão, envolver rapidamente e servir."
      ],
      "source_time_reference": "fonte: vagem 4–5 min",
      "source_temperature_reference": "fervura para vagem; calor moderado no molho",
      "source_endpoint_reference": "vagem al dente, revestida por molho leve",
      "adaptation_guardrails": [
        "Crème fraîche da fonte pode ser omitido/trocado por iogurte zero lactose somente se isso constar na ficha."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-A8DDED5CA2": {
      "id": "PM-SRC-A8DDED5CA2",
      "source_id": "SRC-A8DDED5CA2",
      "source_title": "Cinnamon roll pancakes",
      "source_url": "https://www.bbcgoodfood.com/recipes/cinnamon-roll-pancakes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela/jarra",
        "batedor",
        "squeeze bottle ou saco de confeitar opcional",
        "frigideira antiaderente",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Misturar a massa adaptada até lisa e homogênea.",
        "Preparar o componente de canela/swirl somente com ingredientes autorizados e, se aplicável, colocar em bico/saco para dosar.",
        "Cozinhar a panqueca em fogo baixo-médio; quando as bordas firmarem e surgirem bolhas, aplicar o swirl autorizado e virar com cuidado.",
        "Terminar o segundo lado apenas até o centro estar cozido; a fonte usa cerca de 2–3 min no segundo lado para sua massa original."
      ],
      "source_time_reference": "fonte: segundo lado ~2–3 min; primeiro lado guiado por bordas firmes/bolhas",
      "source_temperature_reference": "fogo baixo-médio",
      "source_endpoint_reference": "superfície firme, centro cozido e desenho de canela preservado",
      "adaptation_guardrails": [
        "Açúcar, maple syrup, manteiga, farinha e iogurte da fonte não entram automaticamente."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-A9091F6283": {
      "id": "PM-SRC-A9091F6283",
      "source_id": "SRC-A9091F6283",
      "source_title": "Jerk chicken",
      "source_url": "https://www.bbcgoodfood.com/recipes/jerk-chicken/",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "processador ou pilão",
        "assadeira",
        "forno"
      ],
      "source_method_paraphrase": [
        "Processar/misturar os temperos jerk, alho, gengibre, tomilho, pimenta e limão/lima autorizados até formar pasta.",
        "Cobrir o frango uniformemente com a pasta.",
        "Assar ou grelhar até dourar e cozinhar por completo."
      ],
      "source_time_reference": "fonte para coxas com osso: 45–50 min",
      "source_temperature_reference": "200°C / 180°C ventilado",
      "source_endpoint_reference": "dourado, aromático e cozido",
      "adaptation_guardrails": [
        "Coconut cream e demais ingredientes da fonte só entram se constarem na adaptação; tempo da coxa não deve ser aplicado ao peito."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-AA1FF0AF1B": {
      "id": "PM-SRC-AA1FF0AF1B",
      "source_id": "SRC-AA1FF0AF1B",
      "source_title": "Mushroom & basil omelette with smashed tomato",
      "source_url": "https://www.bbcgoodfood.com/recipes/mushroom-basil-omelette-smashed-tomato",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira antiaderente",
        "tigela",
        "garfo/batedor",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Dourar/cozinhar os cogumelos primeiro até macios e com pouca água residual; a fonte usa 5–8 min.",
        "Bater os ovos com os temperos/ervas autorizados.",
        "Adicionar à frigideira quente e, nos primeiros segundos, mover delicadamente partes firmes para permitir que ovo líquido alcance o fundo.",
        "Enquanto o centro ainda estiver ligeiramente úmido, adicionar cogumelos e demais recheios autorizados, dobrar e terminar brevemente; a fonte usa cerca de 1 min após rechear."
      ],
      "source_time_reference": "fonte: cogumelos 5–8 min; omelete ~1 min após rechear",
      "source_temperature_reference": "fogo médio",
      "source_endpoint_reference": "cogumelos macios/dourados e omelete recém-firme, ainda macia",
      "adaptation_guardrails": [
        "Tomate e cream cheese da fonte só entram se autorizados; priorizar zero lactose quando aplicável."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-AA7390D783": {
      "id": "PM-SRC-AA7390D783",
      "source_id": "SRC-AA7390D783",
      "source_title": "Keto mug cake",
      "source_url": "https://www.bbcgoodfood.com/recipes/keto-dessert-recipes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "caneca grande própria para micro-ondas",
        "garfo/colher"
      ],
      "source_method_paraphrase": [
        "Untar a caneca somente se houver gordura contabilizada.",
        "Misturar primeiro os líquidos/ovo e depois os componentes secos da versão adaptada até não haver bolsões.",
        "Cozinhar no micro-ondas em intervalos curtos, observando a expansão.",
        "Retirar ainda ligeiramente úmido no centro e descansar para terminar de firmar."
      ],
      "source_time_reference": "fonte 750 W: 3 intervalos de 30 s + 2 min de descanso",
      "source_temperature_reference": "micro-ondas alta potência na fonte",
      "source_endpoint_reference": "estrutura firme após descanso, sem ressecar",
      "adaptation_guardrails": [
        "A massa adaptada é diferente da fonte; usar intervalos como referência e endpoint como controle."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-AB34D47A8D": {
      "id": "PM-SRC-AB34D47A8D",
      "source_id": "SRC-AB34D47A8D",
      "source_title": "Yogurt recipes",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/yogurt-recipes",
      "extraction_status": "source_family_or_existing_overview",
      "equipment": [
        "copo/pote",
        "colher"
      ],
      "source_method_paraphrase": [
        "Misturar iogurte zero lactose e whey até homogêneo.",
        "Preparar fruta em purê, macerada ou cubos conforme o nome da receita.",
        "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver.",
        "Manter refrigerado."
      ],
      "source_time_reference": "montagem fria; sem cocção",
      "source_temperature_reference": "refrigerado",
      "source_endpoint_reference": "creme espesso, camadas definidas e crocante seco",
      "adaptation_guardrails": [
        "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-AD6F9E9285": {
      "id": "PM-SRC-AD6F9E9285",
      "source_id": "SRC-AD6F9E9285",
      "source_title": "Healthy pumpkin pancakes",
      "source_url": "https://www.bbcgoodfood.com/recipes/healthy-pumpkin-pancakes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigelas",
        "batedor",
        "frigideira antiaderente",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Misturar a base líquida autorizada com o purê de abóbora e a gema quando presentes.",
        "Formar uma massa homogênea, sem grumos.",
        "Bater a clara até firme e incorporar delicadamente para dar leveza quando a versão adaptada contiver clara separada.",
        "Cozinhar em frigideira antiaderente e virar somente quando muitas bolhas surgirem e a superfície começar a secar.",
        "Terminar o segundo lado sem escurecer excessivamente."
      ],
      "source_time_reference": "fonte: guiado visualmente por bolhas e secagem da superfície",
      "source_temperature_reference": "fogo médio a médio-baixo",
      "source_endpoint_reference": "panqueca leve, firme e cozida no centro, sem base queimada",
      "adaptation_guardrails": [
        "Farinha e leite da fonte não entram se não estiverem na porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-AEF5B9DDD4": {
      "id": "PM-SRC-AEF5B9DDD4",
      "source_id": "SRC-AEF5B9DDD4",
      "source_title": "Steak with chimichurri sauce",
      "source_url": "https://www.bbcgoodfood.com/recipes/steak-chimichurri-sauce",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "processador ou faca",
        "tigela",
        "chapa ou frigideira",
        "pinça"
      ],
      "source_method_paraphrase": [
        "Picar/processar ervas, alho e aromáticos autorizados do chimichurri e combinar com o ácido e a gordura contabilizada até virar molho rústico.",
        "Secar/temperar o bife e esfregar somente a gordura autorizada na superfície.",
        "Selar em chapa/frigideira quente; a fonte usa 2–3 min por lado para bifes de 125 g, mas o tempo deve seguir espessura e ponto.",
        "Descansar alguns minutos antes de fatiar e só então aplicar o chimichurri."
      ],
      "source_time_reference": "fonte: 2–3 min por lado; descanso de alguns minutos",
      "source_temperature_reference": "chapa/frigideira quente",
      "source_endpoint_reference": "crosta externa, ponto interno desejado e sucos redistribuídos após descanso",
      "adaptation_guardrails": [
        "Batata/fritas e salada da fonte não são parte automática da adaptação."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-B14D4E6F34": {
      "id": "PM-SRC-B14D4E6F34",
      "source_id": "SRC-B14D4E6F34",
      "source_title": "Green beans with lemon & parmesan",
      "source_url": "https://www.bbcgoodfood.com/recipes/green-beans-with-lemon-parmesan",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "panela/vaporizador",
        "tigela"
      ],
      "source_method_paraphrase": [
        "Cozinhar a vagem brevemente até al dente; opcionalmente resfriar para preservar cor quando será armazenada.",
        "Secar bem.",
        "Misturar com limão/mostarda/azeite autorizados e finalizar com parmesão no momento de servir ou após reaquecer."
      ],
      "source_time_reference": "fonte: vapor ~5 min ou fervura ~3 min",
      "source_temperature_reference": "cozimento curto",
      "source_endpoint_reference": "vagem verde e firme; parmesão aderido sem virar pasta",
      "adaptation_guardrails": [
        "Usar somente a quantidade de parmesão/azeite contabilizada."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-B1518DE66A": {
      "id": "PM-SRC-B1518DE66A",
      "source_id": "SRC-B1518DE66A",
      "source_title": "Beef mince & tomato ragu — 4.5/5 (18)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/beef-mince-recipes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "panela pesada",
        "frigideira auxiliar opcional",
        "colher"
      ],
      "source_method_paraphrase": [
        "Amaciar aromáticos autorizados; em paralelo, dourar a carne moída em lotes para não cozinhar no próprio vapor.",
        "Juntar carne e aromáticos, adicionar tomate/purê autorizados e levar a fogo baixo.",
        "Cozinhar lentamente até o molho reduzir e concentrar; mexer ocasionalmente.",
        "Finalizar com ervas/queijo apenas se previstos na adaptação."
      ],
      "source_time_reference": "fonte: base de carne/tomate 1½–2 h em fogo muito baixo, seguida de ~30 min após adição final de lácteo",
      "source_temperature_reference": "dourar em fogo médio-alto; reduzir em fogo muito baixo",
      "source_endpoint_reference": "carne bem dourada e molho denso, sem água livre",
      "adaptation_guardrails": [
        "A versão sem massa omite spaghetti/mascarpone; leite e outros vegetais só entram se estiverem listados."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-BA4DE63859": {
      "id": "PM-SRC-BA4DE63859",
      "source_id": "SRC-BA4DE63859",
      "source_title": "Roasted broccoli",
      "source_url": "https://www.bbcgoodfood.com/recipes/roasted-broccoli",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "assadeira",
        "forno"
      ],
      "source_method_paraphrase": [
        "Secar bem o brócolis, misturar com a quantidade de azeite prevista e temperos.",
        "Espalhar em camada única sem amontoar.",
        "Assar até macio no interior e com pontas/bordas tostadas, movimentando a assadeira aproximadamente na metade."
      ],
      "source_time_reference": "25–30 min",
      "source_temperature_reference": "180°C / 160°C ventilado na fonte",
      "source_endpoint_reference": "macio com bordas crocantes/tostadas",
      "adaptation_guardrails": [
        "Limão/alho entram apenas conforme tempero autorizado."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-BA7CAF57D8": {
      "id": "PM-SRC-BA7CAF57D8",
      "source_id": "SRC-BA7CAF57D8",
      "source_title": "Jerk chicken — 4.3/5 (36)",
      "source_url": "https://www.bbcgoodfood.com/recipes/jerk-chicken/",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "processador ou pilão",
        "assadeira",
        "forno"
      ],
      "source_method_paraphrase": [
        "Processar/misturar os temperos jerk, alho, gengibre, tomilho, pimenta e limão/lima autorizados até formar pasta.",
        "Cobrir o frango uniformemente com a pasta.",
        "Assar ou grelhar até dourar e cozinhar por completo."
      ],
      "source_time_reference": "fonte para coxas com osso: 45–50 min",
      "source_temperature_reference": "200°C / 180°C ventilado",
      "source_endpoint_reference": "dourado, aromático e cozido",
      "adaptation_guardrails": [
        "Coconut cream e demais ingredientes da fonte só entram se constarem na adaptação; tempo da coxa não deve ser aplicado ao peito."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-BAAEF5D467": {
      "id": "PM-SRC-BAAEF5D467",
      "source_id": "SRC-BAAEF5D467",
      "source_title": "Basil & lemon chicken meatballs",
      "source_url": "https://www.bbcgoodfood.com/recipes/basil-lemon-chicken-meatballs",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela",
        "frigideira larga",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Misturar a proteína crua moída com limão, manjericão, alho e somente os ligantes/queijo que estejam autorizados.",
        "Moldar almôndegas uniformes; a fonte usa unidades de cerca de 35 g cruas.",
        "Dourar as almôndegas em fogo médio-alto, movimentando para colorir todos os lados.",
        "Quando houver molho de tomate autorizado, terminar o cozimento em fervura suave até o centro estar cozido; sem molho, concluir na frigideira/forno conforme a ficha."
      ],
      "source_time_reference": "fonte: dourar 6–8 min; depois 15 min no molho",
      "source_temperature_reference": "médio-alto para dourar; fervura suave no molho",
      "source_endpoint_reference": "douradas por fora e cozidas no centro",
      "adaptation_guardrails": [
        "Breadcrumbs, leite, pesto, tomate e açúcar só entram se estiverem autorizados; para nossa versão simples, preservar principalmente limão/manjericão/alho e a técnica de moldar+dourar."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-BBDD66BAD5": {
      "id": "PM-SRC-BBDD66BAD5",
      "source_id": "SRC-BBDD66BAD5",
      "source_title": "Soufflé pancakes",
      "source_url": "https://www.bbcgoodfood.com/recipes/souffle-pancakes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "batedeira/batedor elétrico",
        "frigideira antiaderente com tampa",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Bater claras até picos firmes; preparar separadamente a base proteica/aromática autorizada.",
        "Incorporar as claras delicadamente para preservar ar.",
        "Aquecer frigideira em fogo muito baixo com filme mínimo da gordura prevista e montar panquecas altas.",
        "Cozinhar tampado; adicionar uma segunda pequena camada de massa se a versão permitir; virar com cuidado e terminar tampado."
      ],
      "source_time_reference": "fonte: 2–4 min + 8 min tampado antes de virar; 4–6 min após virar",
      "source_temperature_reference": "fogo muito baixo",
      "source_endpoint_reference": "altas, douradas, com leve elasticidade sem colapsar",
      "adaptation_guardrails": [
        "A nossa massa remove açúcar/farinha quando não listados; por isso o tempo da fonte é só referência e o endpoint prevalece."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-BDEFB6DD8B": {
      "id": "PM-SRC-BDEFB6DD8B",
      "source_id": "SRC-BDEFB6DD8B",
      "source_title": "Egg custard recipes",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/egg-custard-recipes/",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "ramequim/forma",
        "assadeira funda para banho-maria",
        "forno"
      ],
      "source_method_paraphrase": [
        "Misturar ovos e aromáticos suavemente, sem incorporar ar em excesso; adicionar somente o lácteo autorizado.",
        "Transferir para ramequim/forma.",
        "Colocar em banho-maria com água quente subindo parcialmente pelas laterais.",
        "Assar em forno baixo até as bordas firmarem e o centro ainda apresentar leve tremor; resfriar."
      ],
      "source_time_reference": "fonte: 45–50 min",
      "source_temperature_reference": "150°C / 130°C ventilado",
      "source_endpoint_reference": "recém-firme com leve tremor central",
      "adaptation_guardrails": [
        "A fonte usa leite/cream/açúcar; nossa versão pode usar iogurte/whey e deve manter apenas ingredientes contabilizados."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-BF10506C58": {
      "id": "PM-SRC-BF10506C58",
      "source_id": "SRC-BF10506C58",
      "source_title": "Chicken tikka skewers — 4.8/5 (84)",
      "source_url": "https://www.bbcgoodfood.com/recipes/chicken-tikka-skewers",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela",
        "espetos",
        "grill/forno"
      ],
      "source_method_paraphrase": [
        "Misturar iogurte e pasta/especiarias tikka autorizadas; envolver os cubos de frango.",
        "Marinar por cerca de 1 h quando possível.",
        "Retirar excesso de marinada, colocar nos espetos e grelhar, virando periodicamente.",
        "Retirar quando bem dourado e cozido."
      ],
      "source_time_reference": "fonte: 15–20 min sob grill médio; marinada opcional ~1 h",
      "source_temperature_reference": "grill médio",
      "source_endpoint_reference": "bordas douradas e centro cozido",
      "adaptation_guardrails": [
        "Usar iogurte zero lactose; tomate/chapati/salada da fonte não entram salvo se listados."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-BFB52B879B": {
      "id": "PM-SRC-BFB52B879B",
      "source_id": "SRC-BFB52B879B",
      "source_title": "Yogurt parfaits with crushed strawberries & amaretti — 5.0/5 (4)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/yogurt-recipes",
      "extraction_status": "source_family_or_existing_overview",
      "equipment": [
        "copo/pote",
        "colher"
      ],
      "source_method_paraphrase": [
        "Misturar iogurte zero lactose e whey até homogêneo.",
        "Preparar fruta em purê, macerada ou cubos conforme o nome da receita.",
        "Montar em camadas; manter amêndoas/crocantes separados até o consumo quando houver.",
        "Manter refrigerado."
      ],
      "source_time_reference": "montagem fria; sem cocção",
      "source_temperature_reference": "refrigerado",
      "source_endpoint_reference": "creme espesso, camadas definidas e crocante seco",
      "adaptation_guardrails": [
        "Biscoitos/amaretti e adoçantes da fonte não entram salvo se listados."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-C1DE9F5FD9": {
      "id": "PM-SRC-C1DE9F5FD9",
      "source_id": "SRC-C1DE9F5FD9",
      "source_title": "Beef stroganoff — 4.7/5 (343)",
      "source_url": "https://www.bbcgoodfood.com/recipes/beef-stroganoff",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira larga",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Amaciar cebola e alho; dourar cogumelos separadamente para perderem água.",
        "Secar/temperar a carne e selar rapidamente em frigideira quente sem lotar.",
        "Reunir os componentes e reduzir o molho curto com mostarda/caldo/tomate apenas quando previstos.",
        "Retirar do calor forte e incorporar o iogurte zero lactose da adaptação para manter cremosidade sem talhar."
      ],
      "source_time_reference": "fonte: cebola ~15 min; alho 2–3 min; cogumelos ~5 min; carne 3–4 min; molho ~5 min",
      "source_temperature_reference": "frigideira quente para selar; calor médio/baixo no molho",
      "source_endpoint_reference": "carne dourada; cogumelos sem excesso de líquido; molho cremoso e curto",
      "adaptation_guardrails": [
        "A fonte usa farinha/crème fraîche; omitir farinha e trocar o lácteo conforme a adaptação."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-C40AB88FCF": {
      "id": "PM-SRC-C40AB88FCF",
      "source_id": "SRC-C40AB88FCF",
      "source_title": "Keto vanilla cake",
      "source_url": "https://www.bbcgoodfood.com/recipes/keto-vanilla-cake",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "peneira/tecido para iogurte",
        "batedeira ou fouet",
        "tigelas",
        "forma",
        "forno"
      ],
      "source_method_paraphrase": [
        "Quando houver cobertura de iogurte, escorrer o iogurte para ganhar corpo; a fonte usa pelo menos 2 h.",
        "Separar ovos e bater as claras até picos firmes.",
        "Misturar gemas e demais ingredientes autorizados da massa até homogêneo.",
        "Incorporar as claras delicadamente para preservar aeração e transferir para a forma.",
        "Assar seguindo a geometria da versão adaptada e retirar quando o centro estiver assado sem ressecar; resfriar antes de montar."
      ],
      "source_time_reference": "fonte: iogurte ≥2 h; assamento em dois estágios conforme a receita original",
      "source_temperature_reference": "fonte usa forno em estágios; adaptar ao tamanho da porção",
      "source_endpoint_reference": "bolo firme, aerado e sem massa líquida no centro",
      "adaptation_guardrails": [
        "Não reintroduzir farinhas de amêndoa/sementes, adoçantes ou cobertura quando não autorizados. Como a nossa massa pode ser muito menor, o endpoint prevalece sobre o tempo da fonte."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-C52DCF7F9D": {
      "id": "PM-SRC-C52DCF7F9D",
      "source_id": "SRC-C52DCF7F9D",
      "source_title": "Chicken tikka skewers",
      "source_url": "https://www.bbcgoodfood.com/recipes/chicken-tikka-skewers",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela",
        "espetos",
        "grill/forno"
      ],
      "source_method_paraphrase": [
        "Misturar iogurte e pasta/especiarias tikka autorizadas; envolver os cubos de frango.",
        "Marinar por cerca de 1 h quando possível.",
        "Retirar excesso de marinada, colocar nos espetos e grelhar, virando periodicamente.",
        "Retirar quando bem dourado e cozido."
      ],
      "source_time_reference": "fonte: 15–20 min sob grill médio; marinada opcional ~1 h",
      "source_temperature_reference": "grill médio",
      "source_endpoint_reference": "bordas douradas e centro cozido",
      "adaptation_guardrails": [
        "Usar iogurte zero lactose; tomate/chapati/salada da fonte não entram salvo se listados."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-D0DC37E945": {
      "id": "PM-SRC-D0DC37E945",
      "source_id": "SRC-D0DC37E945",
      "source_title": "Pot-roast beef with French onion gravy — 4.5/5 (210)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/beef-recipes/",
      "extraction_status": "source_family_or_existing_overview",
      "equipment": [
        "panela pesada com tampa ou slow cooker",
        "frigideira"
      ],
      "source_method_paraphrase": [
        "Dourar bem a carne e retirar.",
        "Cozinhar a cebola até bem caramelizada/dourada, aproveitando o fundo da panela.",
        "Retornar a carne com o líquido/temperos autorizados e cozinhar lentamente, tampado, até macia.",
        "Retirar a carne, descansar/fatiar e reduzir o molho de cebola se necessário."
      ],
      "source_time_reference": "fonte de pot-roast/cozimento lento; tempo depende do corte e equipamento",
      "source_temperature_reference": "selagem alta; cozimento baixo e lento",
      "source_endpoint_reference": "carne macia; cebola bem dourada; molho concentrado",
      "adaptation_guardrails": [
        "Não adicionar ingredientes da gravy original que não estejam autorizados."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-D2DB83ACE8": {
      "id": "PM-SRC-D2DB83ACE8",
      "source_id": "SRC-D2DB83ACE8",
      "source_title": "Easy meatballs",
      "source_url": "https://www.bbcgoodfood.com/recipes/maisies-marvellous-meatballs",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela",
        "frigideira larga",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Misturar a carne crua moída com ervas e demais ingredientes autorizados, manipulando apenas até ligar.",
        "Moldar almôndegas uniformes.",
        "Dourar em lotes, movimentando para colorir todos os lados.",
        "Se houver molho autorizado, terminar nele em fervura suave; na versão de lanche, concluir a cocção sem os acompanhamentos/molho da fonte."
      ],
      "source_time_reference": "fonte: após dourar, 15 min no molho",
      "source_temperature_reference": "frigideira quente para dourar; fervura suave para finalizar",
      "source_endpoint_reference": "douradas e cozidas no centro",
      "adaptation_guardrails": [
        "Salsicha, breadcrumbs, parmesão, ovo, molho e massa da fonte só entram se autorizados; aqui a fonte é usada principalmente para técnica de mistura, moldagem e dourado."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-D4E6A3162D": {
      "id": "PM-SRC-D4E6A3162D",
      "source_id": "SRC-D4E6A3162D",
      "source_title": "Vitafor — CREATINE: Creatina Monohidratada 300g",
      "source_url": "https://www.vitafor.com.br/creatine---300g---vitafor/p",
      "extraction_status": "existing_source_overview_only",
      "equipment": [],
      "source_method_paraphrase": [],
      "source_time_reference": null,
      "source_temperature_reference": null,
      "source_endpoint_reference": null,
      "adaptation_guardrails": [],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-D6E6893D01": {
      "id": "PM-SRC-D6E6893D01",
      "source_id": "SRC-D6E6893D01",
      "source_title": "Rosemary & lemon roast chicken — 4.9/5 (31)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/lemon-chicken-recipes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "assadeira",
        "forno"
      ],
      "source_method_paraphrase": [
        "Misturar alecrim, alho, limão e temperos autorizados com a gordura da porção.",
        "Cobrir o frango com essa mistura e assar até dourar.",
        "Descansar antes de fatiar/porcionar."
      ],
      "source_time_reference": "fonte para frango inteiro: 1 h 10 min + 10 min de descanso",
      "source_temperature_reference": "190°C / 170°C ventilado",
      "source_endpoint_reference": "dourado e cozido; repousado antes do corte",
      "adaptation_guardrails": [
        "A fonte é para ave inteira; para peito/cubos, usar somente o perfil aromático e técnica de assar, não o tempo de 1 h 10 min."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-D6F2695600": {
      "id": "PM-SRC-D6F2695600",
      "source_id": "SRC-D6F2695600",
      "source_title": "Fried fish & tomato curry",
      "source_url": "https://www.bbcgoodfood.com/recipes/fried-fish-tomato-curry",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "panela",
        "frigideira antiaderente",
        "processador ou mixer opcional",
        "pinça"
      ],
      "source_method_paraphrase": [
        "Amaciar e dourar levemente a cebola; a fonte usa cerca de 8 min.",
        "Preparar a base de tomate, alho e gengibre autorizados; adicionar a pasta/especiarias e cozinhar para perfumar.",
        "Reduzir a base de tomate até espessar; a fonte usa cerca de 10 min antes do componente cremoso.",
        "Selar rapidamente o peixe em frigideira quente usando somente a gordura contabilizada; a fonte usa cerca de 1 min por lado antes de transferir ao molho.",
        "Finalizar o peixe no molho em fervura suave apenas até cozinhar por completo."
      ],
      "source_time_reference": "fonte: cebola ~8 min; base de tomate ~10 min; selagem do peixe ~1 min por lado",
      "source_temperature_reference": "alto para selagem; suave no molho",
      "source_endpoint_reference": "peixe levemente dourado fora e recém-cozido dentro; molho reduzido",
      "adaptation_guardrails": [
        "A farinha de empanar da fonte não deve ser usada se não estiver na porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-D97E9277C4": {
      "id": "PM-SRC-D97E9277C4",
      "source_id": "SRC-D97E9277C4",
      "source_title": "Roasted broccoli — 4.0/5 (9)",
      "source_url": "https://www.bbcgoodfood.com/recipes/roasted-broccoli",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "assadeira",
        "forno"
      ],
      "source_method_paraphrase": [
        "Secar bem o brócolis, misturar com a quantidade de azeite prevista e temperos.",
        "Espalhar em camada única sem amontoar.",
        "Assar até macio no interior e com pontas/bordas tostadas, movimentando a assadeira aproximadamente na metade."
      ],
      "source_time_reference": "25–30 min",
      "source_temperature_reference": "180°C / 160°C ventilado na fonte",
      "source_endpoint_reference": "macio com bordas crocantes/tostadas",
      "adaptation_guardrails": [
        "Limão/alho entram apenas conforme tempero autorizado."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-DB4B66F04A": {
      "id": "PM-SRC-DB4B66F04A",
      "source_id": "SRC-DB4B66F04A",
      "source_title": "Chicken koftas with hummus & salad",
      "source_url": "https://www.bbcgoodfood.com/recipes/chicken-koftas-with-hummus-salad",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela",
        "frigideira antiaderente ou churrasqueira",
        "espátula/espetos"
      ],
      "source_method_paraphrase": [
        "Misturar frango cru moído com ovo/aveia apenas se autorizados e com orégano, limão, cominho, coentro e ervas previstas.",
        "Moldar koftas/bolas uniformes.",
        "Cozinhar em frigideira antiaderente com o azeite contabilizado, dourando dos dois lados; alternativamente finalizar em churrasqueira conforme a técnica da fonte.",
        "Depois de cozidas, pesar a porção final de proteína conforme a alternativa."
      ],
      "source_time_reference": "fonte: frigideira ~5 min por lado; churrasqueira ~4 min por lado após firmar",
      "source_temperature_reference": "fogo médio / churrasqueira quente",
      "source_endpoint_reference": "bem douradas e cozidas no centro",
      "adaptation_guardrails": [
        "Hummus, salada, aveia e ovo só entram se autorizados; a nossa versão preserva formato e perfil de especiarias."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-DB8D4382D5": {
      "id": "PM-SRC-DB8D4382D5",
      "source_id": "SRC-DB8D4382D5",
      "source_title": "Easy cheesy frittata",
      "source_url": "https://www.bbcgoodfood.com/recipes/easy-cheesy-frittata",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela",
        "batedor",
        "recipiente redondo de forno (~16 cm na fonte)",
        "forno"
      ],
      "source_method_paraphrase": [
        "Preparar apenas os recheios autorizados e distribuir no recipiente de forno.",
        "Bater os ovos e misturar aos componentes autorizados.",
        "Untar usando apenas a gordura prevista na alternativa e transferir para o recipiente.",
        "Assar até o ovo estar completamente firme; a fonte usa 180°C/160°C ventilado por cerca de 30 min."
      ],
      "source_time_reference": "fonte: ~30 min",
      "source_temperature_reference": "180°C / 160°C ventilado",
      "source_endpoint_reference": "centro totalmente firme",
      "adaptation_guardrails": [
        "A fonte contém courgette/abobrinha; ela é explicitamente proibida nesta adaptação. Preservar apenas a técnica de frittata assada."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-DE379BFD3B": {
      "id": "PM-SRC-DE379BFD3B",
      "source_id": "SRC-DE379BFD3B",
      "source_title": "Fruity sundae — 4.3/5 (3)",
      "source_url": "https://www.bbcgoodfood.com/recipes/fruity-sundae",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela/copo",
        "garfo ou mixer"
      ],
      "source_method_paraphrase": [
        "Misturar iogurte e whey até formar creme liso.",
        "Amassar/processar parte da fruta em purê e deixar parte em pedaços quando a ficha pedir contraste.",
        "Fazer swirl ou camadas sem homogeneizar totalmente.",
        "Adicionar componentes crocantes somente na hora de servir."
      ],
      "source_time_reference": "montagem imediata, sem cocção",
      "source_temperature_reference": "frio",
      "source_endpoint_reference": "camadas/swirl visíveis e texturas distintas",
      "adaptation_guardrails": [
        "Usar somente frutas/amêndoas da porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-E18543333B": {
      "id": "PM-SRC-E18543333B",
      "source_id": "SRC-E18543333B",
      "source_title": "Chicken gyros — 4.6/5 (100)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/barbecue-recipes",
      "extraction_status": "source_family_or_existing_overview",
      "equipment": [
        "tigela",
        "espetos ou frigideira/grelha"
      ],
      "source_method_paraphrase": [
        "Cortar o frango em pedaços uniformes e envolver com limão, alho, orégano/ervas e gordura autorizada.",
        "Marinar quando a ficha permitir.",
        "Grelhar em espetos ou em frigideira bem quente em camada única, virando para dourar todos os lados.",
        "Servir o molho de iogurte separadamente quando previsto."
      ],
      "source_time_reference": "fonte de família de barbecue/souvlaki; tempo varia com o corte",
      "source_temperature_reference": "grelha/chapa quente",
      "source_endpoint_reference": "cubos/tiras bem dourados e cozidos",
      "adaptation_guardrails": [
        "Não usar pão, beterraba ou acompanhamentos da fonte que não constem na alternativa."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-E309A5D52B": {
      "id": "PM-SRC-E309A5D52B",
      "source_id": "SRC-E309A5D52B",
      "source_title": "Green beans with shallots, garlic & toasted almonds — 4.8/5 (13)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/green-bean-recipes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "panela",
        "frigideira"
      ],
      "source_method_paraphrase": [
        "Cozinhar a vagem até al dente, escorrer e secar.",
        "Amaciar cebola/shallot e alho lentamente na gordura prevista sem deixar queimar.",
        "Adicionar a vagem apenas para aquecer e envolver.",
        "Finalizar com limão e amêndoas tostadas; para marmita, manter as amêndoas separadas até servir."
      ],
      "source_time_reference": "fonte: aromáticos ~8 min; vagem cozida previamente",
      "source_temperature_reference": "calor suave para aromáticos",
      "source_endpoint_reference": "vagem firme; amêndoas crocantes",
      "adaptation_guardrails": [
        "Quantidade de amêndoa e azeite deve seguir a porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-E54E273CF8": {
      "id": "PM-SRC-E54E273CF8",
      "source_id": "SRC-E54E273CF8",
      "source_title": "Lemon & oregano chicken traybake — 4.7/5 (141)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/lemon-chicken-recipes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "assadeira",
        "forno"
      ],
      "source_method_paraphrase": [
        "Temperar o frango com limão, orégano e a gordura prevista.",
        "Assar em assadeira quente, deixando espaço entre os pedaços para dourar.",
        "Virar/reorganizar se necessário e retirar quando dourado e cozido."
      ],
      "source_time_reference": "fonte para coxas usa etapas de 20 min e total ~40 min após entrar o frango",
      "source_temperature_reference": "220°C / 200°C ventilado",
      "source_endpoint_reference": "dourado e cozido por completo",
      "adaptation_guardrails": [
        "A adaptação normalmente usa peito/cubos e remove batata, bacon, vinho e caldo; portanto o tempo da fonte não é transferível literalmente."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-E6C55B7F2D": {
      "id": "PM-SRC-E6C55B7F2D",
      "source_id": "SRC-E6C55B7F2D",
      "source_title": "Frozen yogurt",
      "source_url": "https://www.bbcgoodfood.com/recipes/frozen-yogurt",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "liquidificador/processador",
        "recipiente de freezer"
      ],
      "source_method_paraphrase": [
        "Processar a fruta até purê ou textura desejada.",
        "Misturar/bater com iogurte zero lactose e whey/ingredientes autorizados até homogêneo.",
        "Transferir para recipiente e congelar; para textura mais fina, mexer durante o congelamento para quebrar cristais.",
        "Retirar alguns minutos antes de servir quando estiver totalmente congelado."
      ],
      "source_time_reference": "fontes: congelar até sólido/overnight; uma versão recomenda mexer a cada hora e retirar ~10 min antes",
      "source_temperature_reference": "freezer",
      "source_endpoint_reference": "cremoso/congelado com cristais pequenos",
      "adaptation_guardrails": [
        "Condensed milk/açúcar da fonte não entram; whey é incorporado na nossa versão."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-E7030B5E00": {
      "id": "PM-SRC-E7030B5E00",
      "source_id": "SRC-E7030B5E00",
      "source_title": "Mini chicken bagel burgers",
      "source_url": "https://www.bbcgoodfood.com/recipes/mini-chicken-bagel-burgers",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela",
        "assadeira",
        "grill/forno"
      ],
      "source_method_paraphrase": [
        "Misturar a carne de frango crua moída com alho/ervas e demais ingredientes autorizados.",
        "Dividir e moldar discos uniformes.",
        "Pincelar somente o azeite contabilizado e grelhar/assar, virando uma vez, até dourar e cozinhar no centro.",
        "Após a cocção, porcionar pelo peso cru indicado antes da cocção indicado na alternativa."
      ],
      "source_time_reference": "fonte: ~10 min sob grill, virando uma vez",
      "source_temperature_reference": "grill médio",
      "source_endpoint_reference": "discos firmes, dourados e cozidos no centro",
      "adaptation_guardrails": [
        "Grão-de-bico, batata-doce, bagel, maionese e acompanhamentos da fonte são omitidos na versão de lanche."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-E83E0CA483": {
      "id": "PM-SRC-E83E0CA483",
      "source_id": "SRC-E83E0CA483",
      "source_title": "Herby broccoli",
      "source_url": "https://www.bbcgoodfood.com/recipes/herby-broccoli",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "panela de vapor ou panela com cesta",
        "tigela pequena"
      ],
      "source_method_paraphrase": [
        "Cozinhar o brócolis no vapor até macio porém estruturado; a fonte usa 5–8 min.",
        "Enquanto isso, preparar o tempero/herb mix autorizado.",
        "Escorrer/retirar o brócolis e aplicar o tempero apenas no final, preservando cor e textura."
      ],
      "source_time_reference": "fonte: vapor 5–8 min",
      "source_temperature_reference": "vapor",
      "source_endpoint_reference": "brócolis macio/al dente, verde e sem desmanchar",
      "adaptation_guardrails": [
        "Pesto e pinoli da fonte não entram se não estiverem na porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-E9D3F66FB7": {
      "id": "PM-SRC-E9D3F66FB7",
      "source_id": "SRC-E9D3F66FB7",
      "source_title": "Indian koftas with mint yogurt & flatbreads",
      "source_url": "https://www.bbcgoodfood.com/recipes/indian-koftas-mint-yogurt-flatbreads",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela",
        "frigideira antiaderente",
        "assadeira",
        "forno"
      ],
      "source_method_paraphrase": [
        "Misturar a carne crua moída com os temperos/aromáticos autorizados e moldar pequenas koftas ovais.",
        "Selar em lotes na frigideira; a fonte usa 2–3 min nesta etapa.",
        "Transferir para assadeira e terminar no forno; a fonte usa 200°C/180°C ventilado por 10 min.",
        "Preparar o molho de iogurte/hortelã somente com os ingredientes autorizados e servir separado ou sobre as koftas. A gramagem desta página já deve ser pesada antes da cocção; não é necessário repesar para porcionar."
      ],
      "source_time_reference": "fonte: frigideira 2–3 min; forno 10 min",
      "source_temperature_reference": "200°C / 180°C ventilado para finalizar",
      "source_endpoint_reference": "koftas seladas por fora e totalmente cozidas no centro",
      "adaptation_guardrails": [
        "Chutney, flatbread e acompanhamentos não entram se não constarem da alternativa; usar iogurte zero lactose quando previsto."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    },
    "PM-SRC-EC9CFA9DDA": {
      "id": "PM-SRC-EC9CFA9DDA",
      "source_id": "SRC-EC9CFA9DDA",
      "source_title": "Frango churrasco (grilled lemon & garlic chicken) — 4.9/5 (18)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/lemon-chicken-recipes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "tigela não metálica",
        "grelha/chapa ou grill",
        "espetos opcionais"
      ],
      "source_method_paraphrase": [
        "Misturar frango com limão, alho, páprica/pimenta, ervas e a quantidade de azeite prevista na versão adaptada.",
        "Cobrir e marinar sob refrigeração; a fonte usa no mínimo 2 h e permite deixar de um dia para o outro.",
        "Levar à grelha/chapa bem aquecida; virar para obter dourado uniforme sem queimar a marinada.",
        "Retirar quando cozido e deixar repousar brevemente antes de fatiar/porcionar."
      ],
      "source_time_reference": "fonte para coxa em espetos: ~6 min de um lado + 4 min do outro, com ajuste se necessário; marinada ≥2 h",
      "source_temperature_reference": "grelha/grill quente; reduzir para calor médio se a superfície escurecer rápido",
      "source_endpoint_reference": "bem dourado por fora e cozido por completo",
      "adaptation_guardrails": [
        "A fonte usa açúcar; não adicionar se não constar na versão adaptada.",
        "Para peito/tiras, não copiar o tempo da coxa: usar espessura e ponto como controle."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-ECA8E1F8D9": {
      "id": "PM-SRC-ECA8E1F8D9",
      "source_id": "SRC-ECA8E1F8D9",
      "source_title": "Griddled lemon & thyme chicken — 4.0/5 (9)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/lemon-chicken-recipes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "grelha/chapa"
      ],
      "source_method_paraphrase": [
        "Misturar peito de frango com raspas/suco de limão, alho, tomilho e azeite autorizado.",
        "Temperar e colocar em chapa/grelha já quente.",
        "Grelhar dos dois lados até bem marcado e cozido."
      ],
      "source_time_reference": "fonte: 4–5 min por lado para peito",
      "source_temperature_reference": "grelha/chapa quente",
      "source_endpoint_reference": "exterior marcado; interior cozido e suculento",
      "adaptation_guardrails": [
        "Não adicionar acompanhamentos da fonte."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-F0447AD9EA": {
      "id": "PM-SRC-F0447AD9EA",
      "source_id": "SRC-F0447AD9EA",
      "source_title": "Green beans with lemon & parmesan — 5.0/5 (9)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/green-bean-recipes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "panela/vaporizador",
        "tigela"
      ],
      "source_method_paraphrase": [
        "Cozinhar a vagem brevemente até al dente; opcionalmente resfriar para preservar cor quando será armazenada.",
        "Secar bem.",
        "Misturar com limão/mostarda/azeite autorizados e finalizar com parmesão no momento de servir ou após reaquecer."
      ],
      "source_time_reference": "fonte: vapor ~5 min ou fervura ~3 min",
      "source_temperature_reference": "cozimento curto",
      "source_endpoint_reference": "vagem verde e firme; parmesão aderido sem virar pasta",
      "adaptation_guardrails": [
        "Usar somente a quantidade de parmesão/azeite contabilizada."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-F0896CC580": {
      "id": "PM-SRC-F0896CC580",
      "source_id": "SRC-F0896CC580",
      "source_title": "Quiche Lorraine frittata — 4.8/5 (42)",
      "source_url": "https://www.bbcgoodfood.com/recipes/collection/fritatta-recipes/",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "forma/ramequim",
        "batedor",
        "forno"
      ],
      "source_method_paraphrase": [
        "Bater os ovos e incorporar os componentes autorizados da versão adaptada.",
        "Distribuir o queijo e proteína previstos de modo uniforme na forma.",
        "Assar até o centro ficar firme e a superfície dourada."
      ],
      "source_time_reference": "30–35 min na fonte",
      "source_temperature_reference": "180°C / 160°C ventilado",
      "source_endpoint_reference": "dourada e completamente firme",
      "adaptation_guardrails": [
        "Na adaptação, frango pode substituir bacon/presunto; não adicionar leite/creme se não constar na porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-F2BCABD66D": {
      "id": "PM-SRC-F2BCABD66D",
      "source_id": "SRC-F2BCABD66D",
      "source_title": "Easy oven frittata",
      "source_url": "https://www.bbcgoodfood.com/recipes/easy-oven-frittata",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "recipiente de forno",
        "tigela/jarra",
        "batedor",
        "forno"
      ],
      "source_method_paraphrase": [
        "Pré-aquecer o forno e untar o recipiente somente com a gordura prevista, quando houver.",
        "Bater ovos/claras e misturar o queijo e temperos autorizados.",
        "Despejar no recipiente e distribuir os sólidos uniformemente.",
        "Assar até o centro firmar e a superfície ficar levemente dourada; repousar alguns minutos antes de cortar."
      ],
      "source_time_reference": "fonte: 35–40 min de forno",
      "source_temperature_reference": "190°C / 170°C ventilado",
      "source_endpoint_reference": "centro firme e topo dourado",
      "adaptation_guardrails": [
        "Pasta, milho, ervilha, pimentão e leite da fonte não entram na versão simplificada salvo se presentes na porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-F5D734DB70": {
      "id": "PM-SRC-F5D734DB70",
      "source_id": "SRC-F5D734DB70",
      "source_title": "Classic waffles",
      "source_url": "https://www.bbcgoodfood.com/recipes/classic-waffles/",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "waffleira",
        "tigela/batedor ou liquidificador"
      ],
      "source_method_paraphrase": [
        "Misturar a massa adaptada até homogênea; para versão aerada, incorporar claras batidas por último quando a ficha indicar.",
        "Pré-aquecer a waffleira conforme o fabricante e untar apenas com a gordura contabilizada.",
        "Adicionar massa suficiente para cobrir a superfície sem transbordar.",
        "Cozinhar até exterior dourado/crocante e centro firme."
      ],
      "source_time_reference": "fonte: normalmente 5–6 min na waffleira",
      "source_temperature_reference": "conforme fabricante da waffleira",
      "source_endpoint_reference": "dourado e crocante por fora; firme por dentro",
      "adaptation_guardrails": [
        "Farinha, açúcar, manteiga e leite da fonte não entram salvo se listados na porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-F6B78FAB13": {
      "id": "PM-SRC-F6B78FAB13",
      "source_id": "SRC-F6B78FAB13",
      "source_title": "Broiled Tilapia Parmesan — >7.900 avaliações 5 estrelas citadas pelo Allrecipes",
      "source_url": "https://www.allrecipes.com/recipe/50644/broiled-tilapia-parmesan/",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "assadeira rasa",
        "grill/broiler ou air fryer",
        "espátula"
      ],
      "source_method_paraphrase": [
        "Secar/temperar os filés e dispor em camada única.",
        "Pré-cozinhar sob grill forte, virando na metade quando a espessura permitir.",
        "Aplicar uma camada fina da cobertura de parmesão adaptada.",
        "Voltar ao grill/air fryer apenas até dourar a cobertura e o peixe lascar."
      ],
      "source_time_reference": "fonte: ~4 min de grill inicial (virando na metade) + ~2 min após a cobertura",
      "source_temperature_reference": "broiler/grill alto, filé próximo da fonte de calor",
      "source_endpoint_reference": "parmesão dourado; peixe lascando",
      "adaptation_guardrails": [
        "A fonte usa maionese e manteiga; nossa adaptação não deve adicioná-las salvo se explicitamente contabilizadas."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-FC94FE0E5A": {
      "id": "PM-SRC-FC94FE0E5A",
      "source_id": "SRC-FC94FE0E5A",
      "source_title": "Garlic mushrooms",
      "source_url": "https://www.bbcgoodfood.com/recipes/garlic-mushrooms",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "frigideira pesada"
      ],
      "source_method_paraphrase": [
        "Aquecer a frigideira antes de adicionar os cogumelos; evitar lotar a panela.",
        "Dourar em fogo muito alto até a água evaporar e a superfície começar a caramelizar.",
        "Adicionar alho somente depois do dourado principal; cozinhar brevemente.",
        "Finalizar com ervas autorizadas."
      ],
      "source_time_reference": "fonte: cogumelos 4–5 min + alho ~2 min + ervas ~30 s",
      "source_temperature_reference": "muito alto para cogumelos",
      "source_endpoint_reference": "dourados, sem líquido acumulado",
      "adaptation_guardrails": [
        "Substituir manteiga por azeite quando a manteiga não estiver na porção."
      ],
      "copyright_note": "Resumo/paráfrase operacional; consultar a URL para a receita original completa."
    },
    "PM-SRC-FF4DBC0D5A": {
      "id": "PM-SRC-FF4DBC0D5A",
      "source_id": "SRC-FF4DBC0D5A",
      "source_title": "Peppered fillet steak with parsley potatoes",
      "source_url": "https://www.bbcgoodfood.com/recipes/peppered-fillet-steak-parsley-potatoes",
      "extraction_status": "direct_method_paraphrase",
      "equipment": [
        "chapa/griddle",
        "pinça"
      ],
      "source_method_paraphrase": [
        "Secar a carne, usar somente a gordura contabilizada e pressionar pimenta moída grosseiramente na superfície.",
        "Aquecer bem a chapa e selar os bifes sem movimentar excessivamente.",
        "Como referência da fonte para filés de ~140 g: 2,5 min por lado malpassado ao ponto, 3,5 min por lado ao ponto e 4,5 min por lado bem-passado. Ajustar à espessura real.",
        "Descansar cerca de 5 min antes de servir/fatiar."
      ],
      "source_time_reference": "fonte: 2,5–4,5 min por lado conforme ponto; descanso 5 min",
      "source_temperature_reference": "chapa quente",
      "source_endpoint_reference": "crosta apimentada e ponto interno desejado",
      "adaptation_guardrails": [
        "Manteiga e batatas da fonte só entram se estiverem autorizadas."
      ],
      "copyright_note": "Resumo/paráfrase operacional da página específica da receita; consultar a URL para o original completo."
    }
  },
  "preparation_update_summary": {
    "version": "3.3.0",
    "purpose": "Maior detalhamento operacional do modo de preparo, mantendo os dados nutricionais e as alternativas da v3 inalterados.",
    "exact_recipe_sources_upgraded": [
      "SRC-0FB2713DE2",
      "SRC-14CCEF0B5D",
      "SRC-2227CA24C9",
      "SRC-2F1142BB4F",
      "SRC-2F77203D66",
      "SRC-306EB737D8",
      "SRC-55FF831328",
      "SRC-567AB4BDA3",
      "SRC-58CC1ECA0E",
      "SRC-5DCE2A5D16",
      "SRC-627B49D664",
      "SRC-7F8EF76EB6",
      "SRC-89DE384F5F",
      "SRC-8E365AEB6D",
      "SRC-A119C27396",
      "SRC-A280B37386",
      "SRC-A8DDED5CA2",
      "SRC-AA1FF0AF1B",
      "SRC-AD6F9E9285",
      "SRC-AEF5B9DDD4",
      "SRC-C40AB88FCF",
      "SRC-D6F2695600",
      "SRC-DB8D4382D5",
      "SRC-E83E0CA483",
      "SRC-E9D3F66FB7",
      "SRC-FF4DBC0D5A"
    ],
    "new_raw_precursor_notes": "Adicionados a receitas moldadas de frango, acém, patinho e lombo quando a base nutricional está em peso pós-cocção.",
    "nutritional_data_changed": false,
    "meal_options_changed": false,
    "coverage": {
      "recipes_total": 361,
      "recipes_with_at_least_one_direct_method_source": 337,
      "recipes_with_source_family_or_structured_overview_only": 23,
      "recipes_with_existing_overview_only": 1,
      "source_methods_total": 117,
      "source_methods_direct_method_paraphrase": 98,
      "source_methods_source_family_or_existing_overview": 16,
      "source_methods_existing_source_overview_only": 3,
      "recipes_with_raw_precursor_notes": 36
    },
    "v3_4_raw_weight_update": "Primary cook-facing weights converted to raw/pre-prep state with documented yield factors; macros preserved on historical consumed-state basis."
  },
  "raw_weight_methodology": {
    "primary_rule": "O campo grams de cada ingrediente agora representa a quantidade a pesar antes do preparo: cru/pronto para cozinhar quando o alimento sofre cocção; como comprado/pronto para uso quando não há conversão culinária aplicável.",
    "nutrition_accounting": "Os macros e totais foram preservados exatamente da v3.3. Para alimentos convertidos, nutrition_basis_grams registra a massa equivalente no estado consumido usada no cálculo nutricional histórico, e yield_conversion documenta a ponte cru→estado nutricional.",
    "formula": "raw_grams = nutrition_basis_grams / yield_factor",
    "yield_uncertainty": "Fatores de rendimento são médias de planejamento, não constantes físicas. Rendimento real depende de corte, teor de água/gordura, aparo, equipamento, temperatura, tempo e grau de cocção. Por isso, as gramagens cruas são operacionalmente melhores para produção, mas ainda têm incerteza de rendimento final.",
    "sources": [
      "SRC-YIELD-USDA-MEAT",
      "SRC-YIELD-USDA-VEG",
      "SRC-YIELD-USDA-AH102",
      "SRC-YIELD-USDA-ALMOND"
    ],
    "special_cases": {
      "patinho_ground": "Preparos moldados/moídos de patinho usam 0.75 (proxy de ground beef ≤15% fat); preparos de peça/tiras/grelhados usam 0.65 (beef round knuckle steak).",
      "almonds": "0.97 é estimativa de planejamento de baixa confiança e está explicitamente marcada como tal.",
      "processed_ready_to_use": "Whey, iogurte, queijos, azeite, creatina e molhos prontos são pesados como comprados; não existe um estado cru culinariamente útil para convertê-los."
    }
  },
  "raw_weight_update_summary": {
    "version": "3.4.0",
    "ingredient_lines_converted_to_raw": 975,
    "conversion_counts_by_ingredient_id": {
      "ING006": 221,
      "ING025": 54,
      "ING017": 58,
      "ING027": 152,
      "ING007": 96,
      "ING022": 102,
      "ING019": 61,
      "ING008": 76,
      "ING020": 28,
      "ING018": 45,
      "ING010": 43,
      "ING009": 39
    },
    "max_roundtrip_error_g_due_to_0_1g_rounding": 0.048,
    "meal_totals_changed": false,
    "macro_values_changed": false,
    "daily_plan_totals_changed": false,
    "inactive_cooked_egg_catalog_entries_removed": [
      "ING002",
      "ING003"
    ]
  }
}