{"$schema":"https://cookwala.ai/v1/schemas/recipe.schema.json","cookwala":"0.2.0","id":"add-105","revision":1,"updated":"2026-10-05","legacy":{"dataUrl":"https://fifi.cooking/data/recipes/add-105.json","pageUrl":"https://fifi.cooking/recipe/add-105/"},"verification":{"level":"V0","generatedBy":"tools/export_fifi.py (deterministic, RFC-0009)","notes":"Described, not machine-verified: original ingredients and steps from fifi.cooking; quantities parsed from the text where possible; no end conditions, hazards or critical control points have been verified. Every step is an unclassified legacy step that a device never executes."},"dish":{"names":{"ar":"شوربة البصل الفرنسية","de":"Französische Zwiebelsuppe","el":"Γαλλική κρεμμυδόσουπα","en":"French Onion Soup","es":"Sopa de cebolla francesa","fa":"سوپ پیاز فرانسوی","fr":"Soupe à l'oignon gratinée","he":"מרק בצל צרפתי","hi":"फ्रेंच प्याज़ सूप","id":"Sup Bawang Prancis","it":"Zuppa di Cipolle Francese","ja":"フレンチオニオンスープ","ko":"프랑스식 양파 수프","ku":"Şorbaya Pîvazê ya Fransî","nl":"Franse uiensoep","pl":"Francuska zupa cebulowa","ps":"فرانسوي د پیاز سوپ","pt":"Sopa de Cebola Francesa","ru":"Французский луковый суп","sv":"Fransk löksoppa","sw":"Supu ya Kitunguu ya Kifaransa","te":"ఫ్రెంచ్ ఉల్లిపాయ సూప్","tr":"Fransız Soğan Çorbası","ur":"فرانسیسی پیاز سوپ","zh":"法式洋葱汤"},"localName":"شوربة البصل الفرنسية","cuisine":["EG"],"course":"soup","tags":["Soups","Slow Simmering","chefteta"],"images":[{"url":"https://fifi.cooking/recipe-images/add-105.jpg","role":"banner"},{"url":"https://fifi.cooking/recipe-images/thumbs/add-105.jpg","role":"thumb"}],"difficulty":"medium"},"yield":{"servings":4.0},"ingredients":[{"ref":"onions_thinly_sliced","ingredientId":"cw.ing.onions_thinly_sliced","legacyId":"add-105-i1","qty":{"value":1.0,"unit":"kg"},"display":{"ar":"1 كيلو","en":"1 kg"}},{"ref":"butter","ingredientId":"cw.ing.butter","legacyId":"add-105-i2","qty":{"value":3.0,"unit":"tbsp"},"display":{"ar":"3 ملاعق كبيرة","en":"3 tbsp"}},{"ref":"olive_oil","ingredientId":"cw.ing.olive_oil","legacyId":"add-105-i3","qty":{"value":1.0,"unit":"tbsp"},"display":{"ar":"1 ملعقة كبيرة","en":"1 tbsp"}},{"ref":"sugar","ingredientId":"cw.ing.sugar","legacyId":"add-105-i4","qty":{"value":1.0,"unit":"tsp"},"display":{"ar":"1 ملعقة صغيرة","en":"1 tsp"}},{"ref":"flour","ingredientId":"cw.ing.flour","legacyId":"add-105-i5","qty":{"value":1.0,"unit":"tbsp"},"display":{"ar":"1 ملعقة كبيرة","en":"1 tbsp"}},{"ref":"beef_or_chicken_stock","ingredientId":"cw.ing.beef_or_chicken_stock","legacyId":"add-105-i6","qty":{"value":5.0,"unit":"cup"},"display":{"ar":"5 أكواب","en":"5 cups"}},{"ref":"thyme_and_bay_leaf","ingredientId":"cw.ing.thyme_and_bay_leaf","legacyId":"add-105-i7","qty":{"value":1.0,"unit":"tsp"},"display":{"ar":"1 ملعقة صغيرة + 1 ورقة","en":"1 tsp + 1 leaf"}},{"ref":"salt_and_black_pepper","ingredientId":"cw.ing.salt_and_black_pepper","legacyId":"add-105-i8","qty":{"value":0,"unit":"g"},"display":{"ar":"حسب الرغبة","en":"to taste"},"toTaste":true},{"ref":"toasted_baguette_slices","ingredientId":"cw.ing.toasted_baguette_slices","legacyId":"add-105-i9","qty":{"value":4.0,"unit":"pcs"},"display":{"ar":"4 شرائح","en":"4 slices"}},{"ref":"grated_gruy_re_or_mozzarella","ingredientId":"cw.ing.grated_gruy_re_or_mozzarella","legacyId":"add-105-i10","qty":{"value":1.0,"unit":"cup"},"display":{"ar":"1 كوب","en":"1 cup"}}],"equipment":[{"ref":"hob","class":"cw.eq.heat.hob"},{"ref":"pot","class":"cw.eq.vessel.pot.sauce"}],"process":{"nodes":[{"id":"n1","op":"cw.op.legacy_step","params":{"sourceStep":1,"phase":"cook","opHint":"cw.op.mix"},"attention":"continuous"},{"id":"n2","op":"cw.op.legacy_step","params":{"sourceStep":2,"phase":"cook","opHint":"cw.op.fry"},"attention":"continuous"},{"id":"n3","op":"cw.op.legacy_step","params":{"sourceStep":3,"phase":"cook","opHint":"cw.op.boil"},"attention":"continuous"},{"id":"n4","op":"cw.op.legacy_step","params":{"sourceStep":4,"phase":"finish","opHint":"cw.op.bake"},"attention":"continuous"},{"id":"n5","op":"cw.op.legacy_step","params":{"sourceStep":5,"phase":"finish","opHint":"cw.op.fry"},"attention":"continuous"}],"edges":"implicit-from-inputs","totalTime":"PT1H15M","activeTime":"PT15M"},"safety":{"hazards":[],"allergens":{"eu14":["cereals_gluten","milk"],"us9":["milk","wheat"],"mayContain":[]},"supervision":{"default":"presence_required","reasons":{"all":"V0 document: a person cooks from the original steps; no step is machine-verified (RFC-0009)."}},"abort":{"steps":["heat_off","alert_user"]}},"text":{"ar":{"title":"شوربة البصل الفرنسية"},"en":{"title":"French Onion Soup"}},"textSidecars":{"languages":["de","el","es","fa","fr","he","hi","id","it","ja","ko","ku","nl","pl","ps","pt","ru","sv","sw","te","tr","ur","zh"],"url":"/v1/recipes/{id}/text/{lang}.json"},"source":{"name":"Chef Teta","url":"https://chefteta.com/شوربة-البصل-الفوائد-والوصفات-والنصائ/","collection":"chefteta","citation":"Additional recipes (chapter 7), rewritten from chefteta.com and credited; licence to be confirmed by the founder"},"license":"LicenseRef-source-credited","layers":{"r1":true,"r2":false,"r3":false},"nutrition":{"perServing":{"kcal":390,"protein":14,"fat":20,"carbs":38,"fiber":4,"sugar":14},"basis":"fifi.cooking estimate per serving (modelled from typical composition tables; not measured)"},"cost":{"buckets":{"produce":2,"dairyEggs":2.5,"grains":0.6,"protein":1,"spices":0.2},"total":6.3},"x-cookwala-text":"facts","hash":"sha256:09dd3ef1edbd51604cf793e9a9616f223496d61ad9bdc894be29f6d9afa777ec"}
