{
    "status": "passed",
    "checks": 32,
    "passed_checks": [
        "new remote dish imports",
        "real manual model add succeeds",
        "all 37 nutrients GI GL tags recipe helper fields equal real manual save",
        "real Api recommendWeight(2000) gives 250g staple target",
        "real DB recommendation gives same 200g pickup before consumption",
        "real DB recommendation subtracts 50g consumed and gives 150g",
        "real m Dishes top5 energy query succeeds",
        "top5 contains both equivalent scheduled dishes",
        "real top5 every100g energy equals 147.37 for both",
        "same remote content skips",
        "unchanged remote does not add snapshots",
        "changed recipe updates original dish",
        "real manual model edit succeeds",
        "updated full nutrition and tags equal real manual edit",
        "local price and unit quantity preserved",
        "identity and base classification preserved",
        "remote business times survive real nutrition recalculation",
        "updated remote recipe recommendation equals manual edit with same meal history",
        "missing food blocks bad recipe",
        "bad recipe preserves previous valid nutrition and ingredients",
        "verified remote stopped status disables local despite bad recipe",
        "real Cater search excludes remote-disabled dish but includes enabled manual baseline",
        "manual and remote disabled dishes equally excluded by actual effective candidate search",
        "legacy top5 includes both disabled scheduled dishes equally; baseline behavior recorded",
        "explicit deletion soft deletes mapped local",
        "local deletion marker set",
        "deleted recipe removed from active ingredients",
        "real Cater search excludes explicitly deleted synced dish",
        "legacy top5 still contains historical scheduled deleted UUID; does not claim filter guarantee",
        "legacy top5 handles manual and synchronized deleted markers identically",
        "real DB pickup recommendation returns zero for deleted dish without active recipe",
        "historical meal record retained"
    ],
    "real_call_chain": [
        "DishSync::apply",
        "Dishes::add\/edit (manual baseline)",
        "Dishes::calculateDishesData",
        "Api::recommendWeight",
        "DishRecommendWeightService::calculate",
        "m\\logic\\Dishes::top5"
    ],
    "recommendation": {
        "target_energy": 2000,
        "initial_grams": 200,
        "after_50g_consumption": 150,
        "updated_grams": 140,
        "disabled_direct_service_grams": 140,
        "deleted_grams": 0
    },
    "limits": [
        "SQLite numeric TEXT fixture avoids legacy PDO integer binding; not deployment DDL",
        "No real HTTP\/AI\/device\/image call",
        "Invokes real model save and recommendation consumers, not complete authenticated HTTP controllers or UI",
        "Direct recommendation calculator accepts explicitly provided disabled UUIDs; candidate filtering remains caller responsibility, not proven by this fixture",
        "Does not redefine existing candidate filtering or recompute historical meal nutrition policy"
    ]
}
